Nodejs应用程序在0.0.0.0:80处不公开。
Nodejs应用程序在0.0.0.0:80处不公开。
我使用了一个运行Ubuntu和Node.js的EC2服务器。我以为这会创建一个有效的服务器,如果我访问我的EC2网址,它会响应。\n
var http = require("http"); var port = 80; var serverUrl = "0.0.0.0"; console.log("在" + serverUrl + ":" + port + "启动Web服务器"); http.createServer(function(req, res) { timestamp = new Date(); console.log("在" + timestamp + "接收到URL为" + req.url + "的请求"); if (req.url === '/error') { console.log('抛出一个错误'); throw "Oops"; } res.end("Hello World " + timestamp); }).listen(port, serverUrl);
\n我使用Node.js和Express一段时间了,但从未尝试在VPS上部署它,欢迎任何建议。
问题描述:Node.js应用在0.0.0.0:80处无法公开访问。
问题原因:0.0.0.0:80是服务器上的默认绑定地址和端口,但是由于某种原因,导致该地址和端口无法公开访问。
解决方法:尝试使用以下命令检查inet地址:
ifconfig
,例如:
curl 192.168.1.?
。根据实际情况,查看服务器的inet地址,并尝试使用该地址访问Node.js应用。
文章整理如下:
Node.js应用在0.0.0.0:80处无法公开访问的问题可能由于以下原因导致。为解决该问题,可以尝试以下方法。
首先,使用
ifconfig
命令检查服务器的inet地址。该命令将显示服务器的网络接口配置信息,包括inet地址。例如,可以使用以下命令检查inet地址:
ifconfig
。
接下来,尝试使用
curl 192.168.1.?
命令,其中“192.168.1.?”应替换为上一步骤中获取到的服务器inet地址。这将尝试通过curl命令访问Node.js应用。
根据实际情况,可以通过检查inet地址并使用该地址访问Node.js应用来解决Node.js应用在0.0.0.0:80处无法公开访问的问题。
出现问题的原因是EC2安全组没有打开80端口。解决方法是打开EC2安全组的80端口。可以通过使用命令行中的curl
测试是否在80端口上进行回应。
具体步骤如下:
1. 确保在EC2安全组中打开了80端口。
2. 在机器的命令行中使用curl -v http://localhost/
测试是否在80端口上进行回应。
3. 如果在本地的curl测试中有回应,那么可能是防火墙问题。
4. 感谢,我也遇到了同样的问题。但测试结果表明没有问题 - 'connected [...] Accept: /',尽管应用程序似乎停在了0.0.0.0上。
以上是关于"Nodejs App at 0.0.0.0:80 not public"问题的原因和解决方法。