2013-09-04 17 views
5

私はUbuntu 12.04LTSを実行しています。私のウェブサーバーはTomcat 7.0.42で、プロキシサーバーとしてHAProxyを使用しています。私のアプリケーションは、Webソケットを使用するサーブレットアプリケーションです。502 Bad Gateway HAproxy

いつか私のページをリクエストすると、いくつかのリソースではなく、いくつかのリソースで "502 Bad Gateway"エラーが発生することがあります。私は、これは以下の通りです私のHAProxy設定、とは何かを持っていることを考える:

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

defaults 
    mode  http 
    option http-server-close 
    option httpclose 
# option redispatch 
    no option checkcache # test against 502 error 

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 

    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 apiserver localhost:8080 weight 1 maxconn 1024 check 

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

私は502エラーを防ぐために変更するために何がありますか?

答えて

2

まず、haproxyロギングを有効にします。なぜそれが502を与えるのかをあなたに伝えるだけです。私の推測では、バックエンドの "localhost:8080"は、単に追い続けることができないか、4000ms以内に接続を確立できないということです。 "timeout connect 4000"。

1

HAProxyのデフォルトの制限のいくつかを超えている可能性があります。

tune.maxrewrite 4096 
tune.http.maxhdr 202 
+0

提案された設定の変更がOPの問題に対処する理由について詳しく説明できますか? – Castaglia

+0

答えに詳細を追加してください。現在のフォームで回答を削除することができます。 – Jayan