PM2 和 Nginx:502 错误网关
PM2 and Nginx: 502 Bad Gateway
我一直在尝试将我的 Node 项目部署到一个全新的 DO droplet 上,但我在使用 PM2 时遇到了一些问题。
我的步骤如下:
- Node 安装在 Droplet 映像上(Ubuntu,Node v4.4.4)
- 全局安装 PM2
- 设置Nginx反向代理127.0.0.1:3000
- 克隆了我的项目并安装了 npm
我得到的只是 Nginx 抱怨 502 Bad Gateway。
如果我查看 Nginx error.log 我得到这个:
connect() failed (111: Connection refused) while connecting to
upstream, client: client.ip, server: my.server, request:
"GET / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host:
"my.server"
PM2没什么好说的。 pm2 logs 中没有任何内容,状态为 online。
我尝试跳过 PM2,只执行 npm start,效果很好。我也尝试设置一个虚拟的 hello world 应用程序,并将其与 PM2 一起使用 - 它也有效。
所以这是我目前所在的位置:
- 我的项目 + PM2: 不工作。
- 我的项目没有 PM2:有效。
- Hello World 应用 + PM2:有效。
我不太确定从这里去哪里..我可以跳过 PM2 并使用节点,但我确实想要 PM2 的功能。
有什么想法吗?
我只需要用 bin/www 而不是 [ 来启动 PM2 =21=]。 Express 发电机和一切...
Nginx 有一个名为 proxy_read_timeout 的指令,默认为 60 秒。它确定 nginx 将等待多长时间才能获得对请求的响应。在 nginx 中。 conf 文件,将 proxy_read_timeout 设置为 120 秒解决了我们的问题。
使用的话可能是pm2 --watch
参数的问题。它可能会检测更新日志并不断重启服务器。
这是节点安装的一些问题。删除 node_modules 文件夹,使用 npm 重新安装并使用 pm2 启动项目。
pm2 kill
rm -rf node_modules
npm i
pm2 开始bin/www
在我的例子中,我将 app.js
重命名为 project.js
之类的,它起作用了。
我一直在尝试将我的 Node 项目部署到一个全新的 DO droplet 上,但我在使用 PM2 时遇到了一些问题。
我的步骤如下:
- Node 安装在 Droplet 映像上(Ubuntu,Node v4.4.4)
- 全局安装 PM2
- 设置Nginx反向代理127.0.0.1:3000
- 克隆了我的项目并安装了 npm
我得到的只是 Nginx 抱怨 502 Bad Gateway。
如果我查看 Nginx error.log 我得到这个:
connect() failed (111: Connection refused) while connecting to upstream, client: client.ip, server: my.server, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "my.server"
PM2没什么好说的。 pm2 logs 中没有任何内容,状态为 online。
我尝试跳过 PM2,只执行 npm start,效果很好。我也尝试设置一个虚拟的 hello world 应用程序,并将其与 PM2 一起使用 - 它也有效。
所以这是我目前所在的位置:
- 我的项目 + PM2: 不工作。
- 我的项目没有 PM2:有效。
- Hello World 应用 + PM2:有效。
我不太确定从这里去哪里..我可以跳过 PM2 并使用节点,但我确实想要 PM2 的功能。
有什么想法吗?
我只需要用 bin/www 而不是 [ 来启动 PM2 =21=]。 Express 发电机和一切...
Nginx 有一个名为 proxy_read_timeout 的指令,默认为 60 秒。它确定 nginx 将等待多长时间才能获得对请求的响应。在 nginx 中。 conf 文件,将 proxy_read_timeout 设置为 120 秒解决了我们的问题。
使用的话可能是pm2 --watch
参数的问题。它可能会检测更新日志并不断重启服务器。
这是节点安装的一些问题。删除 node_modules 文件夹,使用 npm 重新安装并使用 pm2 启动项目。
pm2 kill
rm -rf node_modules
npm i
pm2 开始bin/www
在我的例子中,我将 app.js
重命名为 project.js
之类的,它起作用了。