从外部访问gce实例上的node.js webserver

时间:2018-01-29 14:20:38

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

我们在谷歌计算引擎(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控制台中缺少任何其他自定义(网络?,防火墙?等)?

1 个答案:

答案 0 :(得分:0)

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

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