在Linux Azure虚拟机上运行Node或Python应用程序

3

我似乎无法弄清楚这个问题。我在Azure上创建了一个新的Ubuntu VM,并可以通过SSH登录。我安装了Node(这是我多次完成的操作),并尝试运行从nodejs.org下载的测试应用程序:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

然而,当我访问IP地址(与我从其中SSH到该框的相同IP)+ :1337时,它就永远无法加载。我也尝试了:80,但仍然没有运气。我还尝试在:8000上运行python -m SimpleHTTPServer,但仍然无法查看站点。我一定是漏掉了什么。
只是让您知道,我只是想设置一个简单的开发框,并在其中放置大量项目。我想能够随时随地处理我的项目。有些是100%的前端JS项目,因此SimpleHTTPServer很好。有些还是Node项目。无论哪种情况,我只想能够击中某个端口并查看我正在工作的内容。
哦,还有我打开了Azure防火墙到VM,将流量从端口80重定向到端口1337。(https://www.evernote.com/shard/s5/sh/3aef8e76-04f6-48cb-84f9-32462bc425a7/f0cd749773a9d09cee66d00fe3e707c0)
2个回答

3

您正在监听回送IP地址。尝试使用.listen(1337, '0.0.0.0');在所有网络接口上进行监听。


0

烦死了,Azure。我无法打开80端口。是机器的iptables吗?还是某种神奇的Azure东西。

我知道这不可能那么难。

与你的视图不同,我看不到负载均衡器的“NONE”。我看到的是“--”/ 不管那意味着什么。


默认情况下,只有 root 用户可以监听 80 端口。 执行以下命令来允许 Node 作为非根用户绑定 80 端口:sudo apt-get install libcap2-bin sudo setcap cap_net_bind_service=+ep /usr/local/bin/node - Riko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接