Проверка работоспособности HAProxy не работает, но CURL возвращает 200 OK

У меня есть проверка работоспособности HAProxy со следующим бэкэндом:

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

Вы также можете проверить / включить страница статистики: на 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
[...]
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]