编辑:除了heroku,你能提供其他好的nodejs托管服务吗?
创建 Amazon EC2 帐户。
从 AWS 控制台启动任何 Ubuntu AMI(示例)的t1.micro
实例。
通过 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
chown :Users node.pem
chmod 400 node.pem
7) 在EC2仪表板中找到您的EC2实例公共DNS名称,并使用SSH连接:(详细请见)
ssh -i node.pem ubuntu@{your EC2 public DNS name}
8) 更新Ubuntu并安装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应用程序模块:
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}
有很多Node.js的托管解决方案可供选择,以下是其中几个:
Joyent 是 Node.js 的企业赞助商和商标所有者,对于许多事情来说,它提供了一个吸引人的替代选择,当然也包括 Node.js 托管,可以查看 Joyent's Node.js Development Environment(请检查 Node.js™ Development SmartMachine Terms of Service)。
显然,他们正在重新组织这个开发提供:
在过去的一年中,Joyent Cloud 为 Node.js 用户提供了一个免费的开发沙盒。随着时间的推移,社区明确表示他们需要更多的工具和更大的容量。为此,我们很高兴宣布与 Nodejitsu 合作,在 Joyent Cloud 的基础设施即服务平台上运行 Nodejitsu 的开发和管理工具,为用户提供世界一流的 Node.js 开发环境。新服务将很快推出。Cloud Foundry是一个开放的平台即服务项目,支持Node.js以及许多其他框架(这使得该平台非常令人兴奋)。最近,该平台受到了相当多的关注,并被多个解决方案平台即服务(PaaS)提供商作为其后端使用 - 其中包括以下几个(没有特定顺序,也不一定完整):
这些大多数仍处于测试阶段,定价尚未确定,但考虑到竞争,我期望随着时间的推移会有一些有趣的选择。
请查看这个完整的教程在这里。本教程展示了如何在EC2上安装Node.js并配置HTTP端口和nginx进行端口转发,以及使用supervisor来永久运行Node.js,因为它通常会在关闭SSH控制台会话时停止。
我刚刚完成了Heroku的注册和应用程序教程。这真是太容易了。多么愉快的体验啊...
...直到你发现免费套餐无法使用MongoDB实例为止。除了一个免费试用月之外,最低费用是每GB存储18美元/月。
老实说,更好的选择是Openshift。它有三个免费套餐,足以满足像我这样的初学者所需的大部分功能。Heroku和Openshift都在亚马逊的空间内,但它们的客户界面不同。我认为Heroku对于初学者来说更容易入门,但正如我所提到的,数据库方面没有免费午餐。
在 EC2 上免费运行 node.js 最简单的方法,我认为是在 Heroku 上。