Eri*_*rik 28 hosting amazon-ec2 node.js
我有兴趣在云中托管nodejs应用程序,我正在为我的目的寻找免费的云托管.我发现亚马逊有一个,但我有以下问题:是否有任何关于如何在Amazon EC2中设置和运行nodejs应用程序的教程?
编辑:你能为nodejs提供任何好的托管服务(heroku除外)吗?
nab*_*nab 41
我已经将Node.js与Amazon EC2一起使用了一段时间,并且对它们都非常满意.目前AWS似乎是最便宜和最强大的云提供商,因此选择亚马逊不会是一个错误.在云中运行Node.js并没有什么特别之处 - 你可以使用它,就像它是你自己的PC一样.以下是在EC2 Ubuntu服务器上运行的最简单的Node.js应用程序的一些常规步骤:
创建Amazon EC2帐户.
从AWS控制台启动t1.micro实例与任何Ubuntu AMI(示例).
通过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);
Run Code Online (Sandbox Code Playgroud)启动服务器: node test_server.js
检查它是否在另一个控制台上工作: curl http://localhost:8080
根据本教程,这是逐步更新的内容:
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 Terminal,并为“ node.pem”文件设置正确的权限:
chown :Users node.pem
chmod 400 node.pem
Run Code Online (Sandbox Code Playgroud)
7)在EC2控制台中找到您的EC2实例公共DNS名称,并使用SSH连接到它:
ssh -i node.pem ubuntu@{your EC2 public DNS name}
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
9)将您的NodeJS应用程序复制到EC2实例中(通过Cygwin或Winscp)。
10)安装所有Node app必需的模块:
cd /home/ubuntu/My_Node_App
npm install --save
Run Code Online (Sandbox Code Playgroud)
11)使用IPtables重新路由端口,以便可以在默认的http端口80上访问您的应用程序:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
Run Code Online (Sandbox Code Playgroud)
要查看iptables路由条目,请运行:
sudo iptables -t nat -L
Run Code Online (Sandbox Code Playgroud)
如果需要删除路由条目(第一行),请运行:
sudo iptables -t nat -D PREROUTING 1
Run Code Online (Sandbox Code Playgroud)
12)在后台运行您的应用程序:
sudo nohup node app.js &
Run Code Online (Sandbox Code Playgroud)
要终止您的应用进程:
ps -ef | grep app.js
sudo kill {proccess id number}
Run Code Online (Sandbox Code Playgroud)
我的博客文章介绍了如何在EC2上部署基于节点的应用程序:http://devblog.daniel.gs/2014/01/deploying-node-apps-on-aws-ec2-with.html
解释:
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
35300 次 |
| 最近记录: |