谷歌云pm2成功启动nodejs但无法访问

时间:2018-10-27 04:04:01

标签: node.js google-cloud-platform google-compute-engine pm2 vpc

我使用pm2成功启动了节点服务器,但无法访问主机。

port

我在Google云端上打开了端口。

  1. 操作系统:Debian。
  2. 节点版本:v8.12.0
  3. pm2版本:3.2.2

pm2

我尝试了pm2 kill并重新启动,但是没有任何反应。我怎么了?

3 个答案:

答案 0 :(得分:0)

采取以下步骤纠正连接问题:

  1. 检查以查看正在运行的程序以及正在侦听的端口。查看您是否可以识别正在运行的程序: sudo netstat -tnlp如果看到node进程,请注意它正在监听的端口。这符合 3000 吗?如果是这样,请检查它正在侦听的网络地址:它显示0.0.0.0还是显示127.0.0.1?如果显示127.0.0.1,则说明您的应用程序仅在localhost上侦听,您需要对其进行修改以在0.0.0.0上侦听。
  2. 检查 local 防火墙,以查看是否通过运行sudo iptables -nL允许端口 3000 。如果您没有看到任何规则期限并看到“接受政策”,那么您就可以了。否则,如果看不到TCP端口3000,则需要添加一个允许/允许规则。为此,运行sudo ufw allow 3000。如果找不到ufw命令,则可以运行sudo iptables -A INPUT -p tcp --jport 2195 -j ACCEPT,然后运行sudo /etc/init.d/iptables save
  3. 如果仍然无法连接到应用程序,请提供以下命令的输出:
    • sudo iptables -nL
    • sudo netstat -tnlp
    • gcloud compute firewall-rules list(如果已安装gcloud cli,否则将在GCP控制台的网络设置下显示防火墙规则的另一个屏幕截图)。

答案 1 :(得分:0)

我默认将nginx配置为nodejs服务器的代理。而且仍然有效!

 proxy_pass    http://localhost:3000;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection 'upgrade';
 proxy_set_header Host $host;
 proxy_cache_bypass $http_upgrade;

答案 2 :(得分:0)

  1. 先检查curl http://localhost:3000

  2. 确保打开项目防火墙端口3000

https://console.cloud.google.com/networking/firewalls/list?project=xxxx

  1. 运行此SELINUX,我在centos7上

    sudo setsebool -P httpd_can_network_connect on

    sudo setsebool -P httpd_enable_homedirs on

    sudo chcon -Rt httpd_sys_content_t /home/admin/www

    sudo systemctl restart nginx