node.js - 如何在一个 EC2 实例上运行多个应用程序

标签 node.js amazon-web-services amazon-ec2 couchdb

我有几个小型生产站点和一堆有趣的爱好者/实验应用程序等。我想在一个 EC2 实例上运行所有这些。

我可以安装一次 node.js、npm、express 和 couchdb,然后在不同的端口上运行每个应用程序,并在我的域注册表中调整 dns 设置以指向适当的位置吗?

更新:感谢迈克!对于在 EC2 上寻找多个 IP 地址的其他任何人:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html

最佳答案

有多种方法可以解决。

不同的端口

您可以在不同的端口上运行每个 Node.js 进程,然后简单地向全世界开放这些端口。但是,您的 URL 需要在每个项目的主机名末尾添加一个端口。 yoururl.com:8080/ 在技术上可以工作,但可能不是您想要的。

多个 IP 地址

您可以在一个 EC2 实例上使用多个 IP 地址,但是,每个实例需要支付大约 3.65 美元的额外费用。因此,如果您想在一个实例上托管 10 个不同的域,那么每月额外的托管费用超过 30 美元。

另一方面,任何使用 SSL 的域都需要自己的 IP 地址。

还有limits to the number of IP addresses您可以分配给一个实例,实例越小,您获得的 IP 地址就越少。

The number of IP addresses that you can assign varies by instance type. Small instances can accommodate up to 8 IP addresses (across 2 elastic network interfaces) whereas High-Memory Quadruple Extra Large and Cluster Computer Eight Extra Large instances can be assigned up to 240 IP addresses (across 8 elastic network interfaces). For more information about IP address and elastic network interface limits, go to Instance Families and Types in the Amazon EC2 User Guide.

表达虚拟主机

Express 带有虚拟主机功能。您可以在一台 Node.js/Express 服务器下运行多个域,并根据域名设置路由。 Express 下的 vhost 启用此功能。

反向代理

您可以在多个应用服务器前设置 Nginx。这具有最大的灵 active 。每个域可以有一个 Node.js 进程,它允许您一次在一个域上进行更新和重新启动。它还允许您在 Node.js 进程旁边的同一 EC2 实例下托管 Apache/PHP 等应用程序服务器。

使用 Nginx 作为反向代理,您还可以在同一域下托管不同的应用程序服务器,但提供不同的路径。

例如,Node.js 可以提供域的主根路径,但您可以设置 /blog/ 路径以转到同一 EC2 实例上的 Apache/PHP/Wordpress 设置。

关于node.js - 如何在一个 EC2 实例上运行多个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549026/

相关文章:

c++ - AWS CPP TransferManager 与 GetObjectRequest 流到文件 fstream OOM

amazon-web-services - 为 AWS lambda 指定日志组?

flash - Red5 和 Flash Media Server 有什么区别

node.js - 使用 Node.js 创建 Safari 推送通知签名

javascript - 通过 mongoose 更新 mongodb 内嵌套数组中的特定值

node.js - 在node.js中终止process.stdin

node.js - node socket.io 无法使用 VPN 工作

java - Athena 从 parquet 模式创建表

amazon-web-services - AWS EC2 实例在重启后失去 GPU 支持

ruby-on-rails - 让 Nginx 转发到 EC2 上的 Thin