【问题标题】:node.js on windows not serving requests to external IPWindows 上的 node.js 不向外部 IP 提供请求
【发布时间】:2011-11-16 07:02:12
【问题描述】:

我将 node.js 部署到 Amazon EC2 Windows 实例。这是我运行的js代码:

require('http').createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(80);

当我访问 http://localhost 时它运行良好 但是当我尝试通过外部 IP 访问服务器时它不起作用:http://[external IP]

当我运行“netstat -ano”时,我可以看到这一行:

0.0.0.0:80

如果我运行 IIS,那么它会添加两行

0.0.0.0:80
[::]:80

[::] 是什么意思?为什么我运行 node.js 时没有添加它?我认为,这就是为什么 node.js 不向外部 IP 提供请求的原因。如何让 node.js 在 Windows 上运行?

【问题讨论】:

  • 该 IIS 行用于 IPv6。试试听(80,'::')。但也许只是你的防火墙配置不够宽松。
  • 谢谢jh!你回答了这个问题。 node.exe 被 Windows 防火墙阻止。

标签: windows node.js amazon-ec2


【解决方案1】:

(重新发布评论作为答案)

您可能需要重新配置防火墙,它可能配置得太严格了。

【讨论】:

  • 请提及您需要配置的内容。我还在 EC2 中配置了我的节点应用程序。但它不响应 http 请求。我检查了防火墙,打开了 80 端口,检查了实例的安全组。似乎没有任何效果...请说明您做了什么。
  • @user644745 你能把你的代码片段贴在你启动服务器的地方吗?
  • 终于找到问题了。我介绍了 log4js 并将其与 express 集成,如 app.use(log4js.connectLogger(logger, { level: log4js.levels.ERROR }));这就产生了问题。不知何故,这失败了。看起来它只适用于调试。对此发表评论后,它开始工作。奇怪!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多