在单个服务器上运行多个节点实例

我买了一个DigitalOcean液滴,我想用来托pipe几个网站。
所有这些网站在Node.js中都有服务器。 我的液滴的结构是每个网站的目录和每个目录中的文件server.js

当我想在网上放一个网站时,我在正确的目录下运行node server.js 。 这将创build在端口80上运行的服务器的一个实例。

与此同时,我有几个域名,我在GoDaddy购买:site1.com,site2.com等

我的问题是:我应该怎么做,同时运行所有的节点实例,而域redirect到正确的服务器?

一个解决scheme,我不必创build一个文件,处理所有传入的请求到服务器将是首选(除非这是非常通用的,我不必每次添加一个新的网站时,我不得不修改)。

我想为每个网站使用不同的端口,但我不认为有可能将一个域site1.com:80redirect到ip_address:another_port。

更简单的方法是:

  • 为每个nodejs应用程序使用不同的端口
  • 设置防火墙规则closuresHTTP,HTTPS等端口
  • 安装NGINX并将其设置为反向代理

通过这种方式,您还可以直接使用nginx托pipe所有静态文件,处理HTTPS,创build访问日志…以及networking服务器通常所做的一切!

 server { listen 80; server_name domain1.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:8001; } } server { listen 80; server_name domain2.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:8002; } }