我有一个相对基本的Express应用程序,我坐在nginx后面。
我跑步时一切正常
sudo node server.js
我可以毫无意外地访问该网站。
但是当我使用
时 sudo pm2 start server.js
我收到“在线”状态且没有错误(有帮助),但在尝试访问网站时出现502错误。 PM2的说明并未指出需要执行任何其他步骤。
我已经找到了这个问题的解决方案,但它们看起来略有不同(并且有很多它们!我开始怀疑它是否有效) - 我尝试了一些事情,比如定位bin / www而不是server.js但没有骰子。
我是否需要为PM2兼容性执行其他设置?我应该寻找其他选择吗?可能导致这些问题的原因是什么?
这是我当前的nginx配置(改进欢迎),但我要强调的是,不使用PM2时设置正常。
(域名替换为 X )
server {
listen 80;
listen 443 ssl;
server_name www.X.co.uk;
ssl_certificate /etc/letsencrypt/live/X.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/X.co.uk/privkey.pem;
return 301 https://X.co.uk$request_uri;
}
server {
listen 80;
server_name X.co.uk;
return 301 https://X.co.uk$request_uri;
}
server {
listen 443 ssl;
server_name X.co.uk;
root /var/www/X;
ssl_certificate /etc/letsencrypt/live/X.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/X.co.uk/privkey.pem;
location / {
proxy_pass https://localhost:4003;
}
include /etc/nginx/h5bp/location/expires.conf;
include /etc/nginx/h5bp/location/cross-domain-fonts.conf;
include /etc/nginx/h5bp/location/protect-system-files.conf;
}
谢谢!
答案 0 :(得分:0)
我在安装 certbot 时遇到了同样的问题。但是
sudo pm2 delete server
sudo pm2 start server.js
成功了,一切都开始按预期工作!