有多种方法可以解决这个问题。
不同的端口
您可以在不同的端口上运行每个 Node.js 进程,然后简单地向世界开放这些端口。但是,您的 URL 需要在每个项目的主机名末尾添加一个端口。 yoururl.com:8080/
在技术上可以工作,但可能不是你想要的。
多个 IP 地址
您可以在一个 EC2 实例上使用多个 IP 地址,但是,每个实例需要支付大约 3.65 美元的额外费用。因此,如果您想在一个实例上托管 10 个不同的域,那么每月额外的托管费用超过 30 美元。
另一方面,任何使用 SSL 的域都需要它自己的 IP 地址。
此外,您可以分配给实例的 IP 地址数量也有限制,并且实例越小,您获得的 IP 地址就越少。
您可以分配的 IP 地址数量因实例类型而异。小型实例最多可容纳 8 个 IP 地址(跨 2 个弹性网络接口),而高内存四重超大型和集群计算机 8 个超大型实例最多可分配 240 个 IP 地址(跨 8 个弹性网络接口)。有关 IP 地址和弹性网络接口限制的更多信息,请转到 Amazon EC2 用户指南中的实例系列和类型。
快递虚拟主机
Express 带有虚拟主机功能。您可以在一台 Node.js/Express 服务器下运行多个域,并根据域名设置路由。 vhost
在 Express 下启用此功能。
反向代理
您可以在多个应用程序服务器前设置 Nginx。这具有最大的灵活性。每个域可以有一个 Node.js 进程,它允许您一次在一个域上进行更新和重新启动。它还允许您在 Node.js 进程旁边的同一 EC2 实例下托管 Apache/PHP 等应用程序服务器。
使用 Nginx 作为反向代理,您还可以在同一域下托管不同的应用程序服务器,但提供不同的路径。
例如,Node.js 可以提供域的主根路径,但您可以设置/blog/
路径以转到同一 EC2 实例上的 Apache/PHP/Wordpress 设置。