У меня есть haproxy, работающий в качестве моего балансировщика нагрузки, и из веб-интерфейса статистики, который поставляется с haproxy, я могу перевести веб-сервер в режим обслуживания (и вернуть его обратно) - это здорово!
Однако я также хочу иметь возможность выполнять те же действия из командной строки (для использования в некоторых автоматизированных рабочих процессах развертывания). Возможно ли это, и если да, то как?
Большое спасибо
источник
socat /var/run/haproxy.stat stdio
для каждой отдельной командыЕсли у вас есть только доступ к netcat (
nc
), вы можете использовать его для взаимодействия с файлом сокета HAProxy аналогичным образомsocat
.Чтобы отключить сервер:
Убедитесь, что файл сокета имеет соответствующий уровень доступа для выполнения вышеуказанного. В основном примерно так:
В противном случае вы получите разрешение на отказ:
Рекомендации
источник
Самый простой способ это:
1 - Настройте свой веб-сервер так, чтобы он возвращал код 503, если существует файл с именем maintenance.html (например). С Apache вы можете сделать это следующим образом:
2 - Сконфигурируйте ваш сервер haproxy для проверки URL, а не только для проверки порта следующим образом:
3 - Перезагрузите веб-сервер и балансировщик нагрузки.
4 - Переведите ваш веб-сервер в режим обслуживания.
5 - Удалить ваш веб-сервер из режима обслуживания.
источник
Вы также можете временно «удалить» страницу проверки работоспособности с одного сервера, чтобы отключить конечную точку, а затем опубликовать свое приложение.
источник
Если у вас есть debian, readline не работает, netcat - лучший вариант для интерактивной работы:
Неинтерактивный:
источник