在后端启动时,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" 

在此期间,后端服务器被确认并正在接收来自内部负载平衡器的stream量。 这件事情自发地发生,没有任何configuration或HAProxy的其他变化。 重新启动HAProxy解决了这个问题。

有谁知道这是一个已知的问题? 感谢您的帮助/见解。

谢谢。

我的configuration如下所示:

 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 

    我从给定的configuration中注意到,您正在运行AWS ELB负载均衡器v2 v2e ,我猜测v2e直接指向应用服务器(否则会在ELB后面)?

    如果是这样,这将告诉我,随着503错误,您的HAProxy实例和ELB之间的连接正在达到超时,无论是4秒的contimeout超时或300秒的server超时。 更有可能的是4秒钟的contimeout和错误的零星进一步证实,这可能是HAProxy和ELB之间的networking问题。

    我会尝试增加contimeout值以及监视HAProxy和ELB之间的延迟。