Очевидно, на веб-сервере должна быть страница простоя, посвященная странице простоя. Страница должна содержать краткое описание и передаваться со статусом HTTP 503.
Предположим, у нас есть балансировщик нагрузки и несколько веб-серверов. Время простоя следует начинать в двух случаях:
Одним из решений может быть перенаправление из балансировщика нагрузки. Как теперь работать с HAProxy, если веб-сервер не работает или недоступен, и отправлять все запросы на страницу простоя на другом сервере?
Вы можете указать резервный сервер в файле конфигурации haproxy в строке сервера, например
сервер R1 127.0.0.1:9081 резервное копирование
И в этом случае веб-сервер, привязанный к порту 9081 на локальном компьютере, будет обслуживать контент, когда все серверы отключены (неуспешная проверка работоспособности) или все серверы находятся в режиме обслуживания. Вы можете запустить легкий вторичный веб-сервер (например, nginx) исключительно для размещения страницы обслуживания.
Вы можете намеренно перевести сервер в режим обслуживания, отправив команду в сокет статистики, если вы настроили его следующим образом:
Глобальный
stats socket /var/run/haproxy.stat режим 600 уровень администратора
Тогда ваша команда будет выглядеть примерно так:
echo "отключить сервер yourbackendname / yourservername" | socat stdio /var/run/haproxy.stat
но обратите внимание, что выше требуется socat
быть установленным.
Вы можете настроить haproxy на своих серверах, как обычно, и он будет балансировать нагрузку между ними. Другой сервер, обслуживающий страницу простоя, должен быть настроен как backup
сервер в haproxy.
В backup
сервер будет использоваться только тогда, когда все серверы отключены. Haproxy может отслеживать состояние веб-серверов и, таким образом, знать, когда какой-либо сервер не работает.