关于javascript:PM2(Node.js)未在指定端口上侦听

PM2 (Node.js) not listening on specified port

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

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

如果尝试使用pm2 start app.js启动应用程序,则会在日志中得到以下内容:

1
2
3
4
5
6
{ 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文件中,我指定了以下端口:

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

我也尝试过运行export PORT=3000

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

1
app.set('port', 3000);

如果运行netstat -an | grep 3000,我什么也得不到。


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

pm2 start ./bin/www

我一直在运行pm2 start app.js,但没有用。


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


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


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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

的配置


我用这个

pm2.json

1
2
3
4
5
6
7
8
9
10
11
12
13
[
{
 "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-接受端口连接。在应用程序

中相同

1
var server = app.listen(8081 , '0.0.0.0');