EC2 节点后端应用程序 [504 网关超时]
EC2 Node backend app [504 gateway timeout]
工作了几个小时,然后我在应用程序后端收到 504 网关超时错误。
EC2 实例 运行 ubuntu with 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 上解决此问题?它在我的本地机器上完美运行。
如有任何建议,我们将不胜感激。
为此花费了数小时。原来 PM2 和 Nginx 并不总是一起工作,更改 Nginx 配置并重新启动 Nginx 和 pm2 最终为我解决了这个问题。
具体来说,添加这两行:
proxy_set_header Connection '';
keepalive_timeout 10;
工作了几个小时,然后我在应用程序后端收到 504 网关超时错误。
EC2 实例 运行 ubuntu with 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 上解决此问题?它在我的本地机器上完美运行。
如有任何建议,我们将不胜感激。
为此花费了数小时。原来 PM2 和 Nginx 并不总是一起工作,更改 Nginx 配置并重新启动 Nginx 和 pm2 最终为我解决了这个问题。
具体来说,添加这两行:
proxy_set_header Connection '';
keepalive_timeout 10;