Вы только проверяете, работает ли nginx, а не достаточно ли работоспособно приложение.
В backend
добавьте option httpchk
.
option httpchk GET /some/path HTTP/1.1\r\nHost:\ example.com
Замените some path
путем, который докажет, можно ли использовать приложение на этом сервере, если оно вернет 200 OK
(или любой ответ 2xx или 3xx), и замените example.com
на HTTP Host
заголовокприложение ожидает.
option httpchk
По умолчанию проверки работоспособности сервера состоят только в попытке установить TCP-соединение.Если указано option httpchk
, полный HTTP-запрос отправляется после установления TCP-соединения, и ответы 2xx и 3xx считаются действительными, тогда как все остальные указывают на сбой сервера, включая отсутствие какого-либо ответа.
Это пометит сервер как нездоровый, если приложение не работает, поэтому HAProxy прекратит посылать ему трафик.Вы захотите настроить интервал проверки для каждого сервера, используя опции inter
и downinter
и fastinter
на каждом сервере, чтобы указать, как часто HAProxy должен выполнять проверку.