在EC2上运行节点

时间:2013-09-13 13:16:27

标签: node.js mongodb amazon-ec2

我有一个运行Ubuntu 12.04的EC2实例。我安装了nodejs和mongo。此实例还具有分配给它的IP地址。

我想让我的应用程序(一个nodejs应用程序)从一个目录运行(假设/ var / www / node / my_app)连接到本地mongo db(我手动安装了db而不是来自亚马逊市场,但这是出于开发/测试的目的,所以目前性能不是问题)。我希望有一个与IP地址相关联的域名(这是通过我的域名提供商完成并准备好了)依次链接到我的应用程序(从/ var / www / node / my_app运行)所以当我去www时.mydomain.com我会看到我的应用程序在我的网络浏览器上运行。

我还希望能够从/ var / www / node / my_app2运行另一个可以通过其他域或子域(例如app2.mydomain.com)访问的应用程序。

我可以使用PHP / MySQL / Webmin / Apache轻松完成所有这些工作。我需要做的就是将我的应用程序放在特定文件夹上,让webmin管理/创建指向特定domian / subdomain的虚拟主机。

我的问题是:有人可以一步一步向我解释(或指向我的教程/网站/文档)我如何使用节点进行相同的设置?我明白这可能意味着安装其他软件(例如nginx)?

背景:我已经阅读了许多关于如何从节点开始的教程,其中他们解释了如何在本地计算机上安装节点,创建服务器来监听端口(类似于8080)以及我是否访问{{1}它在我的本地计算机上运行(是的,我已经尝试过它确实有效)但是我无法在我的EC2上复制相同的内容。更不用说我不想使用www.mydomain.com:8080(例如),并且希望能够从同一个域运行多个应用程序(使用子域名)。

有人可以帮忙吗?

非常感谢

2 个答案:

答案 0 :(得分:2)

这是我运行MEAN应用程序的Linux VM的设置。

  • 我在我的VM上的非特权端口(> = 1024)上运行我的节点应用程序。我使用Upstart / Monit组合来启动它并使其保持运行。您可以查看此blog post有关如何设置的信息。

  • 对于端口80流量,我使用NGINX作为节点应用程序的反向代理。 NGINX将允许您根据传入的URL路由传入流量。以下是关于如何设置该部分的良好SO页面的link

答案 1 :(得分:1)

考虑使用http-proxy:http://blog.nodejitsu.com/http-proxy-intro

或者基于域名进行代理的nginx。