我已经将我的域名托管在共享 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 时,它可能会意外中断。