web-dev-qa-db-ja.com

HAProxyがバックエンドの稼働中にNOSRVで応答する

HAProxyへのリクエストが503で返されるという奇妙な状況があります。HAProxyログには、NOSRVエラーが返されることが示されています。

Mar 26 19:47:01 localhost haproxy[23910]: 10.0.0.30:34261 
  [26/Mar/2013:19:46:48.579] fe v2/<NOSRV> 12801/-1/-1/-1/12801 503 
  212 - - SC-- 0/0/0/0/0 0/0 "GET /path/v2/ HTTP/1.1"

この間、バックエンドサーバーは確認され、内部ロードバランサーからトラフィックを受信して​​いました。このことは、HAProxyの構成やその他の変更を行わずに、自然に発生しました。 HAProxyを再起動すると、これが修正されました。

これが既知の問題であるかどうか誰かが知っていますか?あなたの助け/洞察をありがとう。

ありがとう。

私の設定は次のようになります:

global
    maxconn     1000 # Total Max Connections. This is dependent on ulimit
    daemon
    nbproc      1 # Number of processing cores. Dual Dual-core Opteron is 4 cores for example.
    log         127.0.0.1 local1
defaults
        mode        http
        clitimeout  60000
        timeout server 300000
        contimeout  4000
        option      httpclose # Disable Keepalive

backend v2
        server v2Elb internal-xxx.us-west-1.elb.amazonaws.com:80 weight 1 maxconn 512 check
backend v2e
        server v2eElb 10.0.1.28:80 weight 1 maxconn 512 check
frontend fe
        bind :80
        option httpchk
        option forwardfor # This sets X-Forwarded-For
        option httplog
        log global
        acl v2e path_beg /path/v2e
        acl v2 path_beg /path/v2
        redirect location https://my.domain.com/path/v2/ if !v2e !v2
        use_backend v2e if v2e
        use_backend v2 if v2
11
Raj

指定された構成から、AWS ELBロードバランサーの前で実行していることがわかりましたv2そして私はそれを推測しているv2eアプリサーバーを直接指します(そうでなければELBの背後にあります)?

もしそうなら、503エラーとともに、HAProxyインスタンスとELB間の接続がタイムアウト(4秒のcontimeoutタイムアウトまたは300秒のserverタイムアウト)に達していることが示唆されます。 。より可能性が高いのは4秒のcontimeoutであり、エラーの散発性により、HAProxyとELB間のネットワークの問題である可能性が高いことがさらに確認されます。

contimeoutの値を増やしたり、HAProxyとELBの間のレイテンシを監視したりします。

2
Jamescun