У меня есть настройка docker-compose, где контейнер nginx используется в качестве обратного прокси-сервера и балансировщика нагрузки для остальных контейнеров, составляющих мое приложение.
Я могу раскрутить приложениеиспользуя docker-compose up -d
и все прекрасно работает.Затем я могу увеличить один из моих сервисов, используя docker-compose up -d --scale auth=3
, и все продолжает работать нормально.
Единственная проблема заключается в том, что nginx еще не знает о двух новых экземплярах, поэтому мне нужно перезапустить вручнуюпроцесс nginx внутри работающего контейнера с использованием docker exec revproxy nginx -s reload
, где "revproxy" - это имя контейнера nginx.
Это нормально и прекрасно, я не против запустить дополнительную команду, когда решу масштабировать однуиз моих услуг.Однако реальная проблема заключается в том, что где-то происходит сбой контейнера ... nginx необходимо знать, как только это произойдет, чтобы остановить отправку трафика на сбойный экземпляр, пока механизм Docker не сможет заменить его работоспособным.
С учетом всего вышесказанного, я бы хотел выполнить то, что они делают, в кратком руководстве по Traefik , за исключением того, что я хотел бы использовать nginx в качестве обратного прокси-сервера.