我一直在尝试在一个全新的DO Droplet上部署我的Node项目,但我遇到了PM2的一些问题。
我的步骤如下:
我得到的是Nginx抱怨502 Bad Gateway。
如果我查看Nginx error.log,我会得到这个:
连接时connect()失败(111:拒绝连接) 上游,客户: client.ip ,服务器: my.server ,请求: “GET / HTTP / 1.1”,上游:“http://127.0.0.1:3000/”,主持人: “的 my.server ”
PM2没什么可说的。 pm2 log 中没有任何内容,状态为在线。
我尝试跳过PM2,只是做了npm启动,效果很好。我也试过设置一个虚拟的hello world应用程序,并将其与PM2一起使用 - 它也有用。
所以这就是我现在的位置:
我不确定从哪里开始..我可以跳过PM2并使用节点,但我确实想要PM2的功能。
有什么想法吗?
答案 0 :(得分:9)
我只需要使用 bin / www 而不是 app.js 启动PM2。快速发电机和一切...
答案 1 :(得分:0)
Nginx有一个名为proxy_read_timeout的指令,默认值为60秒。它确定nginx将等待多长时间以获取对请求的响应。在nginx中。 conf文件,将proxy_read_timeout设置为120秒解决了我们的问题。
答案 2 :(得分:-1)
如果使用pm2 priority_queue
参数,可能会出现问题。它可以检测更新日志并保持服务器重启。
答案 3 :(得分:-1)
这是节点安装的一些问题。删除node_modules文件夹,再次使用npm安装,使用pm2启动项目。
pm2 杀死
rm -rf node_modules
npm 我
pm2 启动 bin/www