我对在云中托管 nodejs 应用程序很感兴趣,我正在寻找一个免费的云托管服务。我发现亚马逊有一个,但我有以下问题:是否有关于如何在 Amazon EC2 中设置和运行 nodejs 应用程序的教程?
编辑:你能为nodejs(heroku除外)提供任何好的托管服务吗?
我对在云中托管 nodejs 应用程序很感兴趣,我正在寻找一个免费的云托管服务。我发现亚马逊有一个,但我有以下问题:是否有关于如何在 Amazon EC2 中设置和运行 nodejs 应用程序的教程?
编辑:你能为nodejs(heroku除外)提供任何好的托管服务吗?
我已经将 Node.js 与 Amazon EC2 一起使用了一段时间,并且对它们都非常满意。目前,AWS 似乎是最便宜、最强大的云提供商,因此选择亚马逊不会是一个错误。在云中运行 Node.js 并没有什么特别之处——您可以像使用自己的 PC 一样使用它。以下是在 EC2 Ubuntu 服务器上运行的最简单的 Node.js 应用程序要遵循的一些一般步骤:
t1.micro
从带有任何 Ubuntu AMI 的AWS 控制台启动实例(示例)。
通过 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
查看这些教程(2021 年更新)
基于本教程,这里是一步一步更新的:
1) 在Amazon Web Services上创建一个帐户。
2)创建EC2实例;我选择了 Ubuntu micro。
3)配置安全组(命名为“节点”)并添加端口:
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 名称,并使用 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}
我关于如何在 EC2 上部署基于节点的应用程序的博客文章:http: //devblog.daniel.gs/2014/01/deploying-node-apps-on-aws-ec2-with.html
解释:
希望这可以帮助。
有相当多的Node.js托管解决方案可用,这里有几个:
Joyent是 Node.js 的企业赞助商和商标所有者,并为许多事情提供了Amazon EC2的有吸引力的替代方案,当然不仅仅是 Node.js 托管,请参阅Joyent 的 Node.js 开发环境(请查看Node.js™开发 SmartMachine 服务条款)。
显然,他们只是在重组这个开发产品:
在过去的一年里,Joyent Cloud 为 Node.js 的用户提供了一个免费的开发沙箱。随着时间的推移,社区已经明确表示他们需要更多的工具和更多的容量。为此,我们很高兴地宣布与Nodejitsu建立合作伙伴关系,在世界级的 Node.js 开发环境中提供这两者,并在 Joyent Cloud 的基础设施即服务平台上运行 Nodejitsu 的开发和管理工具。新服务将很快推出。
因此,目前还不完全清楚 Node.js 解决方案的生产托管的定价选项将如何结束,但鉴于 Joyent 具有竞争力的定价,我预计至少会有类似的选项。
Cloud Foundry 开放平台即服务项目也支持 Node.js,以及许多其他框架(这使得该平台如此令人兴奋),该平台最近获得了相当大的关注,同时被多个解决方案平台即服务(PaaS )提供者作为他们的后端 - 其中包括(没有特定的顺序,也不一定完整):
其中大部分仍处于测试阶段,价格尚未确定,但考虑到竞争,我预计随着时间的推移会有一些有趣的选择。
在 EC2 上免费运行 node.js 的最简单方法是 Heroku 上的恕我直言。
在这里查看这个完整的教程。本教程展示了如何在 EC2 上安装 Node.js 并配置 HTTP 端口和 nginx 以进行端口转发,以及使用主管永远运行 Node.js,因为它通常会在关闭 SSH 控制台会话时停止。
我刚刚浏览了 Heroku 注册和应用教程。再简单不过了。多么令人愉快的经历……
...直到您无法将 MongoDB 实例作为免费工具。最低费用(免费试用月除外)为每 GB 存储每月 18 美元。
老实说,更好的选择是 Openshift。它有三个免费齿轮,足以满足我正在做的很多初学者的工作。Heroku 和 Openshift 都在亚马逊的范围内,但它们的客户界面不同。我认为 Heroku 对初学者来说更容易上手,但正如我所提到的,在数据库方面没有免费的午餐。