inf
@inf
DevOps Engineer

Как запустить nginx при отсутствии сервиса docker swarm?

Имеется docker swarm оркестратор и nginx внутри для проксирования запросов.
upstream site {
  server site:3000;
}

Проблема возникает когда сервис докер сварма site не запускается или запускается позже сервиса nginx. В результате nginx не запускается совсем так как не резолвится имя site.
Может как-то можно понизить тревожность этой настройки, чтобы nginx всё равно запускался, и слал запросы когда сервис оживёт?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
inf
@inf Автор вопроса
DevOps Engineer
Похоже единственный вариант это не указывать апстримы, а объявлять их в директиве location вместе с резолвером.
https://ilhicas.com/2018/04/14/Nginx-Upstream-Unav...
location / {
           resolver 8.8.8.8 valid=10s;
           set $upstreamName nameofhost:8443;
           proxy_pass http://$upstreamName;

Но если используется статистика nginx-vts, то не будут считаться метрики апстримов.
Поэтому в целом docker swarm + nginx + nginx_vts + prometheus это путь в никуда.
Как вариант попробовать traefik как заменитель nginx.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы