2016-12-01 9 views
2

を返す私は、次のバックエンドで構成HAProxyヘルスチェックを持っている:HAProxyヘルスチェックが機能していないが、CURLは200 OK

backend php_servers 
    http-request set-header X-Forwarded-Port %[dst_port] 
    option httpchk get /health 
    http-check expect status 200 
    server php1 internal_ip:80 check 

HAProxyは、サーバーを有効にしませんが、CURLを使用したとき、私は200 OK応答を受け取ります。

Command: curl -I internal_ip/health 
Response: 
HTTP/1.1 200 OK 
Server: nginx 
Date: Thu, 01 Dec 2016 20:53:48 GMT 
Content-Type: text/html; charset=UTF-8 
Connection: keep-alive 
Access-Control-Allow-Origin: api.flex-appeal.nl 
X-Frame-Options: SAMEORIGIN 
X-Content-Type-Options: nosniff 
X-XSS-Protection: 1; mode=block 
Cache-Control: no-transform 

なぜHAProxyはサーバーを「UP」と認識しないのですか?私はうまく接続することができるようだ。

答えて

2

正しいHTTP動詞がGET、ないget次のとおりです。

option httpchk GET /health 

また、チェック/ stats pageを有効にすることができます。チェックが失敗した理由をLastChk欄にあなたはが表示されます。私の場合、私は501 Not Implementedという応答を得ます。

私はHAProxyと同じ要求を行うことによって、それを再現することができます。

$ telnet localhost 80 
Trying ::1... 
Connected to localhost. 
Escape character is '^]'. 
get /health HTTP/1.0 

HTTP/1.1 501 Not Implemented 
Date: Thu, 01 Dec 2016 21:53:09 GMT 
Server: Apache/2.4.23 (Unix) PHP/7.0.13 
[...] 
関連する問題