使用 path_dir 的 haproxy 访问列表在 Firefox 上出现问题

使用 path_dir 的 haproxy 访问列表在 Firefox 上出现问题

我正在尝试使用 HAProxy 将所有包含 /socket.io/ 路径目录的请求路由到单独的端口。

这是我的配置文件:

global
    maxconn     4096 # Total Max Connections. This is dependent on ulimit
    nbproc      2

defaults
    mode        http

frontend all 0.0.0.0:80
    timeout client 86400000
    default_backend web_servers
        acl is_stream path_dir socket.io
    use_backend stream_servers if is_stream

backend web_servers
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    timeout server 30000
    timeout connect 4000
    server web1 127.0.0.1:4000 weight 1 maxconn 1024 check

backend stream_servers
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    timeout queue 5000
    timeout server 86400000
    timeout connect 86400000
    server stream1 127.0.0.1:5100 weight 1 maxconn 1024 check

在 Chrome 和 Safari 中,带有 /socket.io/ 的 URL 路径可以正确定向到端口 5100。但对于 Firefox 则不行。

我在我的 Mac 上本地运行 Haproxy 进行开发,不确定这是否与此有关。

我正在使用 haproxy 1.4.8 和 Firefox 3.6.15。

我尝试过清除 Firefox 上的缓存,但没有帮助,所以我认为 HAProxy 解析 Firefox 请求标头的方式有问题。

答案1

最有可能的原因是,使用此配置,只会分析连接的第一个请求,而其他请求只会通过隧道传输到服务器。启用日志会显示它。只需将“option http-server-close”添加到您的默认部分,它应该可以工作。啊,请删除“nbproc 2”。它只会使调试复杂化,不会给您带来任何东西。

相关内容