#nginx #amazon-ec2 #pm2
#nginx #amazon-ec2 #pm2
Вопрос:
Работает пару часов, а затем я получаю ошибку 504 gateway timeout на серверной части приложения.
Экземпляр EC2 работает под управлением ubuntu с nginx и PM2.
/etc/nginx/sites-available
файл .conf:
server {
listen 80;
server_name mydomain.com;
root /home/ubuntu/app;
index index.html;
access_log /var/log/nginx/app.access.log;
error_log /var/log/nginx/app.error.log;
location / {
try_files $uri /index.html =404;
}
}
server {
listen 8080;
server_name mydomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
Я считаю, что моя конфигурация верна, поскольку она работает правильно, но только в течение нескольких часов. Затем я получаю сообщение об ошибке. Экземпляр PM2 все еще подключен к сети и запущен. Я думаю, что, вероятно, по какой-то причине происходит сбой приложения узла, но как я могу устранить это в ubuntu EC2? Он отлично работает на моем локальном компьютере.
Любые предложения будут оценены.
Комментарии:
1. Вы проверили журналы вашего приложения узла?
2. Я не верю, что регистрирую ошибки для узла на сервере, мне нужно сделать это вручную, верно?
3. Проверьте документацию PM2: pm2.keymetrics.io/docs/usage/log-management
4. @jarodsmk добавил ответ, который сработал для меня, потребовалось много часов поиска и настройки конфигурации, чтобы найти то, что сработало. Но, в частности, мне помог приведенный ниже ответ.
5. @John107 спасибо, чувак. В итоге у меня возникла проблема с оптимизацией кодирования, с которой я разобрался
Ответ №1:
Потратил на это часы. Оказывается, PM2 и Nginx не всегда хорошо работают вместе, изменение конфигурации Nginx и перезапуск Nginx и pm2 в конечном итоге устранили проблему для меня.
В частности, добавление этих двух строк:
proxy_set_header Connection '';
keepalive_timeout 10;