【发布时间】:2017-10-11 03:33:07
【问题描述】:
我们已经建立了一个节点服务器,它在 5000 端口上运行。
在newly created droplet 中,我们有installed and started nginx。为了访问节点应用,我们将/etc/nginx/sites-enabled/default中的默认端口从80更改为5000
server {
listen 5000 default_server;
listen [::]:5000 default_server;
sudo ufw enable
sudo ufw allow 5000/tcp
另外,也尝试过这种方式:
sudo ufw allow 5000
正如sudo ufw status所确认的那样
netstat -ntlp
还有the app is configured to listen on the public interface
const server = app.listen(process.env.PORT || 5000, '0.0.0.0', () => {
console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});
但是,甚至默认端口都没有响应。因此,我们恢复为 80 作为默认端口。
在Droplet之外访问节点应用还需要什么?
【问题讨论】:
-
在 5000 端口上运行时,
iptables -S和netstat -plant的输出是什么? -
还有
netstat -ntlp的输出? -
为什么把nginx改成监听5000端口?这不是您的节点应用程序正在监听的地方吗?您应该让 nginx 在端口 80 上提供流量,并将该流量代理/转发到端口 5000(您的节点应用程序在该端口接收它)。
-
@Oliver 添加了输出以供参考
标签: node.js nginx ubuntu-16.04 digital-ocean