Итак, я столкнулся со странной проблемой, и я не уверен, в чем причина. Я запускаю контейнер, используя docker -compose, и отлично работает следующая конфигурация nginx:
server {
location / {
proxy_pass http://container_name1:1337;
}
}
Где container_name - это имя службы, которую я дал в docker -compose.yml файл. Он отлично разрешает IP и работает. Однако в тот момент, когда я изменяю вышеуказанный файл на этот:
upstream backend {
least_conn;
server container_name1:1337;
server container_name2:1337;
}
server {
location / {
proxy_pass http://backend;
}
}
Он перестает работать полностью, и в журналах ошибок я получаю следующее:
2020/03/17 13:16:03 [error] 8#8: *11 no live upstreams while connecting to upstream, client: xxxxxx, server: codedamn.com, request: "GET /HTTP/1.1", upstream: "http://backend/", host: "xxxxx"
Почему это так? nginx не может разрешить DNS, когда находится внутри вышестоящих блоков? Может ли кто-нибудь помочь с этой проблемой?
ПРИМЕЧАНИЕ. Это происходит только в производственной среде (Ubuntu 16.04), в локальной сети (macOS Catalina), та же конфигурация работает нормально. Я совершенно сбит с толку после обнаружения этого.
Обновление 1: Следующие работы:
upstream backend {
least_conn;
server container_name1:1337;
}
Но не с более чем одним сервером. Почему?!