【发布时间】:2018-05-12 09:09:29
【问题描述】:
我在 Ubunu Linux 机器上托管一个流星应用程序。该应用程序正在侦听端口 3000。如果我使用网络服务器(如 NginX)并将 HTTP 请求从端口 80 转发到 3000,我可以从外部浏览到服务器并查看应用程序。但是,当我尝试直接在端口 3000 访问应用程序时,即浏览 http://myhost:3000,它只是尝试连接并且没有任何反应。
我已确保所有防火墙都已关闭,并且应用程序正在侦听所有接口,即0.0.0.0:3000,所以这不是问题。
为了验证端口实际上是可访问的,我创建了一个简单的节点 js 网络服务器:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('Hello World!');
res.end();
}).listen(3000);
现在浏览到服务器,我可以看到"Hello World!"。所以很明显这行得通,所以为什么我无法访问流星与防火墙或未打开的端口无关。
因此,尝试直接在端口 3000 访问流星应用时似乎有些奇怪。但是为什么呢?我使用以下环境变量:
export MONGO_URL=mongodb://localhost:27017/meteor
export HOST=myhost
export PORT=3000
export ROOT_URL=http://myhost
那么我错过了什么?端口是打开的,当我运行netstat -tulpan 时,我可以看到node 进程实例正在侦听端口3000
【问题讨论】:
-
你在关注this nginx recipe 吗?