我有兴趣在云中托管nodejs应用程序,我正在为我的目的寻找免费的云托管。我发现亚马逊有一个,但我有以下问题:是否有关于如何在Amazon EC2中设置和运行nodejs应用程序的教程?
编辑:你能为nodejs提供任何好的托管服务(heroku除外)吗?
答案 0 :(得分:41)
我已经将Node.js与Amazon EC2一起使用了一段时间,并且对它们都非常满意。目前AWS似乎是最便宜和最强大的云提供商,因此选择亚马逊不会是一个错误。在云中运行Node.js并没有什么特别之处 - 你可以使用它,就像它是你自己的PC一样。以下是在EC2 Ubuntu服务器上运行的最简单的Node.js应用程序的一些常规步骤:
从AWS控制台启动t1.micro
实例与任何Ubuntu AMI(example)。
通过SSH登录您的实例。
安装node.js:sudo apt-get install nodejs
使用以下内容创建新文件test_server.js
:
require("http").createServer(function(request, response){
response.writeHeader(200, {"Content-Type": "text/plain"});
response.write("Hello World!");
response.end();
}).listen(8080);
启动服务器:node test_server.js
从其他控制台检查它是否有效:curl http://localhost:8080
答案 1 :(得分:10)
查看这些教程
答案 2 :(得分:5)
我的博客文章介绍了如何在EC2上部署基于节点的应用程序:http://devblog.daniel.gs/2014/01/deploying-node-apps-on-aws-ec2-with.html
解释:
希望这有帮助。
答案 3 :(得分:5)
根据此tutorial,这里有一步一步更新:
1)在Amazon Web Services上开帐户。
2)创建EC2实例;我选择了Ubuntu micro。
3)配置安全组(将其命名为" Node")并添加端口:
HTTP(80),HTTPS(443)以及您的Node应用程序的自定义TCP端口(例如3000)
4)启动实例并保存pem文件(私钥),例如" node.pem"
5)在Windows上 - 安装Cygwin + OpenSSH包。还建议安装WinScp以使"资源管理器像"访问linux。
6)以管理员身份打开Cygwin终端,并为" node.pem"设置正确的权限。文件:
chown :Users node.pem
chmod 400 node.pem
7)在EC2示波器中找到您的EC2实例公有DNS名称,并connect to it with SSH:
ssh -i node.pem ubuntu@{your EC2 public DNS name}
8)更新Ubuntu和install NodeJS:
sudo apt-get update
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential
9)将NodeJS应用程序复制到EC2实例中(通过Cygwin或Winscp)。
10)安装所有Node app所需的模块:
cd /home/ubuntu/My_Node_App
npm install --save
11)使用 IPtables 重新路由端口,以便可以在默认的http端口80上访问您的应用程序:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
要查看iptables路由条目,请运行:
sudo iptables -t nat -L
如果您需要删除路由条目(第一行),请运行:
sudo iptables -t nat -D PREROUTING 1
12)将您的应用作为后台流程运行:
sudo nohup node app.js &
要杀死你的应用程序进程:
ps -ef | grep app.js
sudo kill {proccess id number}
答案 4 :(得分:1)
有一些Node.js的托管解决方案可用,以下是其中几个:
Joyent是Node.js的企业赞助商和商标所有者,并为许多事情提供了Amazon EC2的吸引人的替代方案,当然不是最少的Node.js托管,请参阅{{3} (请查看Joyent's Node.js Development Environment)。
显然他们只是重组这个开发产品:
过去一年,Joyent Cloud提供了免费开发 用于Node.js.用户的沙箱随着时间的推移,社区已经做到了 明确表示他们需要更多工具和更多容量。为此,我们是 很高兴宣布与Node.js™ Development SmartMachine Terms of Service合作提供两者 这些在世界级的Node.js开发环境中 Nodejitsu在Joyent Cloud上运行的开发和管理工具 基础设施即服务平台。新服务将推出 不久。
因此,目前还不完全清楚Node.js解决方案的生产托管的定价选项将如何结束,但鉴于Joyent的Nodejitsu,我预计至少会有类似的选择。
competitive pricing 开放平台即服务项目也支持Node.js,以及许多其他框架(这使平台如此令人兴奋),该平台最近获得了很大的吸引力并且同时被多个解决方案Cloud Foundry提供商用作他们的后端 - 其中包括(没有特定的顺序,也不一定完整):
其中大部分仍然处于测试版状态且定价尚未确定,但考虑到竞争,我预计会有一些有趣的选择。
答案 5 :(得分:0)
在EC2上免费运行node.js的最简单方法是在Heroku上使用IMHO。
答案 6 :(得分:0)
查看完整的教程here。 本教程介绍如何在EC2上安装Node.js并配置HTTP端口和nginx以进行端口转发,以及使用Supervisor永远运行Node.js,因为它通常会在关闭SSH控制台会话时停止。
答案 7 :(得分:0)
我刚刚完成了Heroku注册和应用教程。不可能更容易。多么愉快的经历...
......直到你不能将MongoDB实例作为免费装备。最低费用(免费试用月除外)为每GB存储18美元/月。
老实说,最好的选择是Openshift。它有三个免费装备,足以满足很多初学者的需求,比如我正在做的事情。 Heroku和Openshift都在亚马逊的空间内,但他们的客户界面却不同。我认为Heroku对于初学者来说更容易上手,但正如我所提到的,在数据库方面没有免费的午餐。