Задать вопрос
@oexlkinq

Почему nginx reverse proxy на express сервер даёт ошибку 502?

конфиг сайта в nginx:

server{
    server_name домен;

    location / {
        include /etc/nginx/proxy_params;
        proxy_pass http://localhost:5129;
    }

    listen 5127 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/домен/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/домен/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


параметры запуска express:

app.listen(5129, 'localhost', () => console.log('express started'));


запрос извне по адресу https://домен:5127 даёт ошибку 502 (в error.log nginx ошибка "111: Connection refused")
wget'ом с самого сервера на localhost:5129 срабатывает нормально
nmap говорит что localhost:5129 закрыт

попробовал воссоздать локально такую конфигурацию - работает нормально

раньше для тестов пробрасывал 5129 порт через ssh себе на комп

единственное что приходит в голову - это кеши. но какие и где? или я просто что-то где-то упустил?
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Средний 11 комментариев
Решения вопроса 1
@oexlkinq Автор вопроса
коротко из комментов:

в чём оказалась проблема:
express слушал на [::1]:5129, nginx спрашивал 127.0.0.1:5129

способы решить:
1. сменить host в app.listen на 127.0.0.1 или 0.0.0.0
2. сменить адрес в proxy_pass в конфиге сайта nginx на [::1] или ip6-localhost (если есть в /etc/hosts)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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