我使用pm2成功启动了节点服务器,但无法访问主机。
我在Google云端上打开了端口。
我尝试了pm2 kill
并重新启动,但是没有任何反应。我怎么了?
答案 0 :(得分:0)
采取以下步骤纠正连接问题:
sudo netstat -tnlp
如果看到node
进程,请注意它正在监听的端口。这符合 3000 吗?如果是这样,请检查它正在侦听的网络地址:它显示0.0.0.0
还是显示127.0.0.1
?如果显示127.0.0.1
,则说明您的应用程序仅在localhost上侦听,您需要对其进行修改以在0.0.0.0
上侦听。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
。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)
先检查curl http://localhost:3000
确保打开项目防火墙端口3000
https://console.cloud.google.com/networking/firewalls/list?project=xxxx
运行此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