502: приложение Nodejs через прокси Nginx Ubuntu 18.04 - PullRequest
0 голосов
/ 10 октября 2018

Настройка

Запуск Ubuntu 18.04 на виртуальном частном сервере.Установленный Nginx (для работы в качестве прокси), обслуживающий приложение Nodejs с использованием PM2.

Проблема

Сработал месяц, теперь вдруг сервер возвращает 502:

2018/10/10 00:39:51 [ошибка] 1009 # 1009: * 19 Ошибка connect () (111: соединение отклонено) при подключении к восходящему каналу, клиенту: 176.104. --- .---, серверу: foo.bar.com, запрос: "GET / HTTP / 2.0", восходящий поток: "http://127.0.0.1:4000/", хост:" foo.bar.com "

2018/10/10 00:39:51 [ошибка] 1009 # 1009: * 19 нет прямых трансляций при подключении к апстриму, клиент: 176.104. --- .---, сервер: foo.bar.com, запрос: «GET /favicon.ico HTTP / 2.0», апстрим:"http://localhost/favicon.ico", хост:" foo.bar.com ", реферер:" https://foo.bar.com/"

2018/10/10 01:10:15 [ошибка] 1009 # 1009: * 24 connect () не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиенту: 176.104. - .---, серверу: foo.bar.com, запрос: «GET / HTTP / 2.0», восходящий канал: «http://[::1]:4000/", host: "foo.bar.com"

2018/10/10 01:10:15 [error] 1009 # 1009: * Ошибка 24 connect () (111: соединение отклонено) при подключении к апстриму, клиент: 176.104. --- .---, сервер: foo.bar.com, запрос: «GET / HTTP / 2.0», апстрим: «http://127.0.0.1:4000/", host:» foo.bar.com "

2018/10/10 01:10:15 [ошибка] 1009 # 1009: * 24 нет прямых трансляций при подключении к апстриму, клиенту: 176.104. --- .---, серверу: foo.bar.com, запрос: "GET /favicon.ico HTTP / 2.0", восходящий поток: "http://localhost/favicon.ico", хост:" foo.bar.com ", реферер:" https://foo.bar.com/"

Конфиги:

Важно

Самое главное - этот конфиг работал отлично в течение месяца.Тогда это перестало работать.Это произошло, когда была загружена новая версия приложения.Откатился до предыдущей версии (полная копия всей системы).Но теперь даже предыдущая версия (которая работала) не работает с той же ошибкой.Итак, почесывая голову здесь.

Брандмауэр

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
**/tcp                     ALLOW       ******
Nginx Full                 ALLOW       Anywhere
Nginx Full (v6)            ALLOW       Anywhere (v6)

Обновление

Я попытался обслужить только статический HTML-файл, и это сработало.Я пытался обслуживать фиктивное приложение Expressjs, и оно работало.Таким образом, проблема, похоже, заключается в сгенерированном Angular server.js (Универсальный движок).

1 Ответ

0 голосов
/ 10 октября 2018

Ошибка шлюза 502 означает, что NGINX недоступен для вашего бэкенда.
Убедитесь, что pm2 запускает приложение NodeJS и прослушивает 4000 / TCP.
Вы можете просто проверить его с помощью curl или netstat с помощью следующих команд:

netstat -ntlp | grep :4000
curl http://127.0.0.1:4000
...