HAProxy 后端路由由共享 IP 托管平台上托管的域进行

HAProxy 后端路由由共享 IP 托管平台上托管的域进行

我已经将我的域名托管在共享 IP 托管平台上。我已经在 Google Compute Engine 上配置了 HAProxy 来路由流量。但是当我尝试访问 HAProxy 服务器 IP 时,我得到的是共享托管平台的默认页面(就像我们尝试通过 IP 地址访问网站时的 CPanel 默认页面一样)。

这是我在 HAProxy 配置中添加的附加配置:

resolvers public-dns
  nameserver dns1 4.4.4.4:53
  nameserver dns2 8.8.8.8:53

frontend http
  bind *:80
  stats uri /haproxy?stats
  default_backend site-backend

backend site-backend
    mode http
    balance roundrobin
    option httpclose
    option forwardfor
    reqadd Host:\ app.domain_name.com
    server mysite app.domain_name.com:80 resolvers public-dns check inter 1000 resolve-prefer ipv4

如何使用 HAProxy 获取正确的网站?

答案1

HAProxy 正在连接到 app.domain_name.com(顺便说一句,请务必为此设置 Resolvers 块,因为 HAProxy 通常不会重新查找解析),但会逐字发送原始请求。这缺少提供商用来区分请求的 Host 标头。

HAProxy 文档描述使用reqadd配置将 HAProxy 螺栓固定在主机头上:

reqadd      Host:\ app.domain_name.com

另请查看解析器部分确保您正确处理 app.domain_name.com 的 DNS 解析,否则当提供商改变其 IP 时,它可能会意外中断。

相关内容