HAProxy显然没有正确转发

时间:2014-01-03 00:28:20

标签: reverse-proxy haproxy portforwarding

我正在使用这个HAProxy配置文件:

defaults
        mode http

frontend main
        bind *:80
        use_backend drewgrosscom if { hdr(host) -i drewgross.com }
        use_backend drewgrosscom if { hdr(host) -i www.drewgross.com }
        use_backend drewgrosscom if { hdr(host) -i drewallyngross.com }
        use_backend drewgrosscom if { hdr(host) -i www.drewallyngross.com }
        use_backend idoor if { hdr(host) -i idoor.drewgross.com }

backend drewgrosscom
        server s1 127.0.0.1:8000

backend idoor
        server s3 127.0.0.1:8002

转发到drewgrosscom后端的所有内容都可以正常工作,但访问idoor.drewgross.com并不能解决任何问题。服务器肯定在端口8002上运行并提供服务,因为我可以访问drewgross.com:8002<my-servers-ip>:8002并查看我希望看到的内容。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

默认情况下,HAProxy在隧道模式下工作。这意味着,它将仅检查连接中的第一个请求,无论它是否为保持连接。在调度请求之后,此特定TCP连接的所有进一步通信将被发送到第一个请求的选定后端服务器。

要缓解这种情况,您可以完全disable keep-alive

option httpclose
客户端和HAProxy之间的

enable keep-alive,但要在HAProxy和后端服务器之间禁用它

option http-server-close

HAProxy 1.5-dev20或更新版本中提供的第三个(不完整且仍在进行中的工作)选项为full keep-alive support

option http-keep-alive

您必须使用其中一个选项来分析(和切换)所有HTTP请求。对于生产网站,我目前推荐option http-server-close