使用PM2运行应用程序给我一个502错误

时间:2017-04-18 17:49:49

标签: node.js nginx pm2

我有一个相对基本的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;
}

谢谢!

1 个答案:

答案 0 :(得分:0)

我在安装 certbot 时遇到了同样的问题。但是

sudo pm2 delete server
sudo pm2 start server.js

成功了,一切都开始按预期工作!