28

我对在云中托管 nodejs 应用程序很感兴趣,我正在寻找一个免费的云托管服务。我发现亚马逊有一个,但我有以下问题:是否有关于如何在 Amazon EC2 中设置和运行 nodejs 应用程序的教程?

编辑:你能为nodejs(heroku除外)提供任何好的托管服务吗?

4

8 回答 8

43

我已经将 Node.js 与 Amazon EC2 一起使用了一段时间,并且对它们都非常满意。目前,AWS 似乎是最便宜、最强大的云提供商,因此选择亚马逊不会是一个错误。在云中运行 Node.js 并没有什么特别之处——您可以像使用自己的 PC 一样使用它。以下是在 EC2 Ubuntu 服务器上运行的最简单的 Node.js 应用程序要遵循的一些一般步骤:

  1. 创建Amazon EC2 帐户

  2. t1.micro从带有任何 Ubuntu AMI 的AWS 控制台启动实例(示例)。

  3. 通过 SSH 登录到您的实例。

  4. 安装 node.js:sudo apt-get install nodejs

  5. 创建test_server.js具有以下内容的新文件:

    require("http").createServer(function(request, response){
      response.writeHeader(200, {"Content-Type": "text/plain"});  
      response.write("Hello World!");  
      response.end();
    }).listen(8080);
    
  6. 启动服务器:node test_server.js

  7. 检查它是否从另一个控制台工作:curl http://localhost:8080

于 2012-05-14T09:36:40.227 回答
6

基于本教程,这里是一步一步更新的:

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}
于 2017-02-09T07:03:16.397 回答
5

我关于如何在 EC2 上部署基于节点的应用程序的博客文章:http: //devblog.daniel.gs/2014/01/deploying-node-apps-on-aws-ec2-with.html

解释:

  • 从您的 github 存储库部署 Node 应用程序(私有+公共)
  • 使用脚本自动化部署过程
  • 使用 Nginx 的反向代理
  • 并使用 Forever 实用程序。

希望这可以帮助。

于 2014-01-07T00:21:37.523 回答
1

有相当多的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 )提供者作为他们的后端 - 其中包括(没有特定的顺序,也不一定完整):

  • AppFog -适用于 Java、Node、.Net、Ruby、PHP、MySQL、Mongo、PostgreSQL 等的简单 PaaS……在 IaaS 之间自由移动,价格最简单。
  • Cloud Foundry (VMware)(Cloud Foundry 的企业赞助商)-在几秒钟内部署和扩展应用程序,而无需将自己锁定在单个云中。
  • Iron Foundry - Iron Foundry 是一个开源项目,它通过提供服务、安装程序和开发工具将 Cloud Foundry™ 扩展到 .NET 生态系统。

其中大部分仍处于测试阶段,价格尚未确定,但考虑到竞争,我预计随着时间的推移会有一些有趣的选择。

于 2012-05-14T08:44:58.290 回答
0

在 EC2 上免费运行 node.js 的最简单方法是 Heroku 上的恕我直言。

于 2012-05-14T06:17:52.140 回答
0

在这里查看这个完整的教程。本教程展示了如何在 EC2 上安装 Node.js 并配置 HTTP 端口和 nginx 以进行端口转发,以及使用主管永远运行 Node.js,因为它通常会在关闭 SSH 控制台会话时停止。

于 2013-12-04T12:31:22.277 回答
0

我刚刚浏览了 Heroku 注册和应用教程。再简单不过了。多么令人愉快的经历……

...直到您无法将 MongoDB 实例作为免费工具。最低费用(免费试用月除外)为每 GB 存储每月 18 美元。

老实说,更好的选择是 Openshift。它有三个免费齿轮,足以满足我正在做的很多初学者的工作。Heroku 和 Openshift 都在亚马逊的范围内,但它们的客户界面不同。我认为 Heroku 对初学者来说更容易上手,但正如我所提到的,在数据​​库方面没有免费的午餐。

于 2015-05-24T02:08:22.473 回答