Happroxy和CNAME

我想为两台服务器创build一个简单的负载平衡器。

问题在于CNAMElogging,我想。

假设我在AppFog.com上有两个相同的应用程序。

app1.aws.af.cmapp2.aws.af.cm

这是我的haproxy.cfg文件:

global maxconn 2000 daemon defaults mode http clitimeout 60000 srvtimeout 30000 contimeout 4000 option httpclose listen http_proxy bind [myip]:80 mode http stats enable stats auth user:passwd stats uri /stats balance source option httpchk option forwardfor server host01 app1.aws.af.cm:80 maxconn 300 check server host02 app2.aws.af.cm:80 maxconn 300 check 

但是这只能解决域名为app1.aws.af.cm和app2.aws.af.cm的IP,如果我在浏览器中打开这个IP,这显然不起作用。

问题是AppFog没有公共的IP地址(和OpenShift一样)。

如何做Haproxy来执行Load Balancer和这两个服务器之间的正确连接?

例:

这是真正的应用程序 – http://freechat.eu01.aws.af.cm

Haproxy只parsing为46.51.204.8:80这个域的IP

当然这个IP不会显示我的应用程序,只有一个错误页面。

对不起,我英文很差。

在你的问题上遇到一些麻烦。 但是,有一件事要记住,HTTP请求具有请求的域名作为HTTP头中的主机字段。

因此,如果名称绑定与主机头匹配,则负载均衡器和Web服务器通常会指示请求或响应请求。

也许这个清除了一些东西,或者你可以尝试重述你的问题?

我也不确定我是否完全明白这一点。 当我有站点绑定到一个主机头,而不是IP地址,我所要做的就是确保健康检查也使用头:

 option httpchk HEAD /mystatus HTTP/1.1\r\nHost:\ example.com 

然后这允许它通过健康检查。 当客户端连接时,他们将input正确的域名,如www.example.com。 据我所知,主机头信息不会丢失,所以连接将起作用。