Главная / Справочник ошибок / Веб-сервер
Веб-сервер не достучался до сервиса (502)
connect() failed (111: Connection refused) while connecting to upstream
connect() failed 111 Connection refused while connecting to upstream, ошибка 502 Bad Gateway в Directum RX: сервис за nginx не запущен, перезапускается или слушает другой порт.
Что это значит
nginx попытался открыть соединение с сервисом, и на том конце порт никто не слушает. Пользователь видит 502. Сервис не запущен, как раз перезапускается или запущен на другом порту или адресе.
Родственные сообщения: no live upstreams означает, что недоступны все экземпляры сервиса. upstream prematurely closed connection означает, что сервис принял запрос и оборвал соединение, обычно упал в процессе.
Как проверить
Адрес и порт сервиса есть в строке лога после upstream:.
ss -ltnp | grep <порт>
systemctl status <служба>
docker ps -a --format '{{.Names}}\t{{.Status}}'
Статус Restarting или частые перезапуски у контейнера указывают на падение при старте.
Что сделать
- Запустить сервис и прочитать его лог за время падения: причина там.
- Если сервис убит по памяти (код выхода 137), см. статью про OOMKilled.
- Короткие 502 во время обновления или перезапуска нормальны. Чтобы их не было, нужны несколько экземпляров и проверка готовности.
- Сверить порт и адрес в настройках nginx с тем, что слушает сервис. После переезда в контейнеры адреса часто меняются.