我试图在亚马逊微实例上运行nodejs服务器过去3-4天没有成功。
我遵循了很多教程,我无法使服务器工作(所以当它在浏览器中访问或在powerShell中卷曲并看到简单的hello世界时)。
以下是我尝试过的最后3个教程:
http://iconof.com/blog/how-to-install-setup-node-js-on-amazon-aws-ec2-complete-guide/ http://techprd.com/setup-node-js-web-server-on-amazon-ec2/ http://devblog.daniel.gs/2014/01/deploying-node-apps-on-aws-ec2-with.html
我尝试过ubuntu / amazon linux。
我也跟着http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html了解了一般过程是如何工作的,它确实运作良好。
我到达了这样的地步:sudo node filename.js
并且服务器运行。
然而,当我尝试访问或卷曲它。它不起作用。当我ping它时它很好。
在亚马逊我设置安全组基本上允许这样的一切:
在linux中它的自我跟随:https://help.ubuntu.com/community/IptablesHowTo?action=show&redirect=Iptables打开我试图听的端口,什么也没有。
当我输入:sudo service iptables status
我得到:
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1337:1347
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1338:1348
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10000
请记住,我不是一个精通服务器的人。
任何帮助都将受到高度赞赏。
更新:要启动我的节点服务器,请使用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/');
这正是我的文件的样子
答案 0 :(得分:3)
您没有提供足够的信息,但我会尝试概述一般的故障排除技巧。
您的节点程序是否正在运行并提供请求?进入Ec2框并执行curl -v localhost:8000
(或任何节点端口。)它应该吐出你的应用程序。如果没有,你的node.js设置不正确。
你的nginx正在运行吗?点击框并输入curl -v localhost
。这将在您的端口80上查看。如果它不代理您的应用程序,则可能是nginx配置问题。
您可以通过IP地址到达此框吗?在您的桌面/笔记本电脑上,执行curl -v x.x.x.x
,其中x.x.x.x
是您的EC2公共IP地址。如果挂起,则存在防火墙问题。
您可以通过DNS访问该框吗? (假设您试图让foo.com指向它)尝试curl -v http://foo.com/
。如果这不起作用,您的DNS可能不正确。
然而,当我尝试访问或卷曲它。它不起作用。
请更具体。