20

我正在尝试在 PM2 上启动并运行 Node/Express 应用程序。我可以使用以下命令正常启动应用程序:npm start

这将在端口 3000 上启动应用程序。

如果我尝试启动应用程序,pm2 start app.js我会在日志中得到以下信息:

{ online: true, success: true, pid: 10714, pm2_version: '0.8.15' }
2014-06-12T19:52:06.789Z : [[[[ PM2/God daemon launched ]]]]
2014-06-12T19:52:06.800Z : RPC interface [READY] on 6666:localhost
2014-06-12T19:52:06.801Z : BUS system [READY] on  6667:localhost
2014-06-12T19:52:06.978Z : Entering in node wrap logic (cluster_mode) for script     /home/user/test/app.js
2014-06-12T19:52:07.115Z : /home/user/test/app.js - id0 worker online

在我的 bin/www 文件中,我有以下指定端口:

app.set('port', process.env.PORT || 3000);

我也试过跑步export PORT=3000

以及 bin/www 中的以下内容:

app.set('port', 3000);

如果我运行 a ,netstat -an | grep 3000我将一无所获。

4

5 回答 5

47

对于任何使用 Express 的人来说,答案是运行以​​下命令:

pm2 start ./bin/www

我一直在跑步pm2 start app.js,但没有用。

于 2014-06-27T19:05:40.043 回答
3

您的app.set('port'...电话没有直接关系。app.set只是一个存储键/值设置的地方,但它本身提供了零功能。您要查看的是您调用的位置,app.listen因为该函数接受端口作为参数。

于 2014-06-12T23:55:08.193 回答
1

我遇到了类似的问题,将 nginx 配置为代理服务器时,我看不到 PM2 运行的 Express 应用程序。当我删除我的~/.pm2文件夹时,它起作用了。

于 2016-08-24T13:59:18.097 回答
0

我用这个

pm2.json

[
{
  "exec_mode": "fork_mode",
  "cwd" : "/opt/acme_service",
  "script": "acme_service.js",
  "name": "acme_service",
  "restart_delay":"9000",
  "port"       : 8081,
  "node_args": [ "--acme" ],
  "error_file": "/var/log/acme_service.err.log",
  "out_file": "/var/log/acme_service.out.log"
}
]

"port" : 8081 - 接受端口连接。在应用程序中相同

var server = app.listen(8081 , '0.0.0.0');
于 2020-01-30T14:33:28.087 回答
0

在我的情况下,它正在侦听特定端口,但由于某种原因我的界面找不到主机/端口,然后我安装了 NGINX 并将默认值 on 设置 /etc/nginx/sites-enabled/为:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        server_name _;

        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection “upgrade”;
            proxy_max_temp_file_size 0;
            proxy_pass ip:port/; <<<<<<<<< Change the IP and port >>>>>>>>>
            proxy_redirect off;
            proxy_read_timeout 240s;
        }

}

检查最后几行。反向代理工作。

Obs:/etc/nginx/sites-enabled/default包含在/etc/nginx/nginx.conf中,然后用作 NGINX 的配置

于 2020-08-28T19:29:03.833 回答