【问题标题】:Accessing node.js webserver on gce instance from outside从外部访问 gce 实例上的 node.js 网络服务器
【发布时间】:2018-07-08 06:35:27
【问题描述】:

我们在谷歌计算引擎 (gce) 虚拟实例中设置了一个 Windows 2012 服务器,用于网络托管。 Windows 服务器已经安装了 IIS 8.5,我们可以毫无问题地访问我们在其上安装的任何 web asp.net 应用程序,包括 HTTP 和 HTTPS 协议(在 gce vm 创建期间默认安装)。

现在我们需要在同一台机器上测试一个简单的 node.js web 服务器,所以我们执行了以下任务: - 停止 IIS 以释放 http (80) 和 https (443) 端口 - 运行一个简单的 node.js http 服务器示例,例如:

var http = require('http');

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

如果我们在 vm 内本地运行此示例,但不能在 Internet 外部运行,则此示例运行良好。这在内部和外部都适用于 IIS...

任何想法为什么它不能与 node.js 一起使用? 我们是否缺少 gce 控制台中的任何其他自定义(网络?、防火墙?等)?

【问题讨论】:

    标签: node.js webserver iis-8 windows-server-2012 google-compute-engine


    【解决方案1】:

    经过一些分析,问题很容易解决:我们只需添加一条防火墙规则以允许 http/https 流量(80 和 443 端口),瞧!

    似乎不知何故,当我们在 gce 虚拟机创建期间激活 http/https 访问时,gce 会自动添加防火墙例外。但是,我们在防火墙配置中找不到这个异常,这使得问题难以理解......

    【讨论】:

      猜你喜欢
      • 2012-03-10
      • 2020-10-31
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 2011-01-16
      • 1970-01-01
      相关资源
      最近更新 更多