【问题标题】:AWS working for IIS, but not for NodeJS on the same portAWS 适用于 IIS,但不适用于同一端口上的 NodeJS
【发布时间】:2014-10-21 08:26:24
【问题描述】:

我在 Windows Server 2008 R2 上使用 AWS EC2 实例,我在 IIS 的 80 端口上部署了一个应用程序。我可以在任何地方访问它。安全组如下: HTTP TCP 80 0.0.0.0/0

然后,我为 Windows 安装了 NodeJS,并将一个简单的节点应用程序部署到同一个端口。当我浏览到服务器上的 localhost 时,我看到我的应用程序正在运行,但是当我从另一台电脑浏览时,我无法访问它。它是如何从 IIS 而不是从 NodeJS 访问的?

我在 stackoverflow 上看到过这个问题,答案通常是在 AWS cosole 的安全组中设置 TCP 端口,但我已经这样做了,但它不起作用。还有其他想法吗?

【问题讨论】:

  • nodejs 是否在同一个端口上运行?如果不是,您是否允许该端口供公众访问?
  • 是的,我停止了 IIS,并将 nodejs 放在同一个端口 80 上。我可以在本地浏览它,但不能公开浏览
  • 尝试从另一台计算机 ping 您的服务器。如果超时,则端口有问题,如果不是,则您的 nodejs 服务器设置有问题(您没有发布您的代码,所以我无法调试它)。也看看这个serverfault.com/questions/271824/…
  • 感谢您的帮助。那是港口。事实证明,AWS Windows server 2008 AMI 仅为有限的 IIS 服务集打开端口。我必须设置另一个规则来为 NodeJS 打开相同的端口。
  • 你设置了什么规则来打开node js的端口?我在 EC2 的防火墙中尝试了一条规则,该规则将所有端口和任何协议设置为打开,并且它仍然在本地工作,而不是来自另一台 PC。 (尝试在没有 IIS 的情况下使用节点服务器)

标签: node.js amazon-web-services


【解决方案1】:

对于那些有同样问题的人,如果你安装了 nodejs,你将需要更改一些 windows 防火墙设置以公开端口:

  1. 打开开始菜单 -> 管理工具 -> 高级安全 Windows 防火墙
  2. 点击左侧窗口中的“入站规则”
  3. 点击右侧“操作”窗口中的“新建规则...”
  4. 按照提示自定义规则,并确保添加您的 nodejs 应用程序正在使用的端口。确保为规则命名,以便您以后识别它
  5. 在入站规则窗口中找到并双击您刚刚创建的规则。在程序和服务下,选择“此程序:”并浏览到您的 node.exe 文件。
  6. 最后但并非最不重要的一点是确保此端口也在 AWS 控制台安全组入站规则中打开。

【讨论】:

    猜你喜欢
    • 2016-04-25
    • 2013-04-30
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多