Я сделал это. В моем случае это была служба маршрутизации на основе латентности DNS AWS, но она работает так же.
Я настроил конечную точку /health
в моей программе nodejs. Это довольно просто сделать с express. Затем я помещаю этот раздел в nginx .conf.
location /health {
proxy_pass http://relay/health;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
. Все это есть, чтобы убедить ваш обратный прокси nginx передать адрес хоста-источника на сервер nodejs. Мой сервер называется «ретранслятор», ваш - это что-то другое.
Моя конечная точка /health
настроена на возврат 200, когда все в порядке, и 503 («служба недоступна» a / k / a «попробуйте снова»). позже "), когда конкретный сервер перегружен или находится в процессе отключения. Полностью мертвый сервер просто не отвечает, что служба DNS AWS правильно интерпретирует, как и служба ALB.
Я также добавил очень маленький объект JSON, описывающий текущее состояние сервера, когда он был построен и запущен, и еще несколько деталей. Хорошо для мониторинга.