0

私の設定ファイル:

global
    maxconn     4096 # Total Max Connections. This is dependent on ulimit
    nbproc      2
    daemon
    log         127.0.0.1    local1 notice
defaults
    mode        http

frontend all 0.0.0.0:80
    timeout client 86400000
    default_backend www_backend
    acl is_websocket hdr(Upgrade) -i WebSocket
    acl is_websocket hdr_beg(Host) -i ws
    acl is_websocket path_beg /socket.io

    use_backend socket_backend if is_websocket

backend www_backend
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    timeout server 30000
    timeout connect 4000
    server server1 localhost:9001 weight 1 maxconn 1024 check
    server server2 localhost:9002 weight 1 maxconn 1024 check

backend socket_backend
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    stats enable
    timeout queue 5000
    timeout server 86400000
    timeout connect 86400000
    server server1 localhost:5000 weight 1 maxconn 1024 check

私が知る限り、 www_backend はすべてに一致します。私の Web アプリがhttp://myapp.com/socket.io/1/?t=1335831853491を要求すると、404 が返され、ヘッダーには Express からの応答が表示されます。奇妙なことに、curl -I http://myapp.com/socket.io/1/?t=1335831853491を実行すると、次のように返されます。

HTTP/1.1 200 OK
Content-Type: text/plain
Connection: keep-alive

sudo netstat -lptu を実行すると、socket.io プロセスがポート 5000 で実行されていることを確認できます。

4

2 に答える 2

1

答えはここにあります:

https://serverfault.com/questions/248897/haproxy-access-list-using-path-dir-having-issues-with-firefox

「デフォルト セクションに「option http-server-close」を追加すれば、機能するはずです。」

于 2012-05-01T03:57:45.933 に答える