如何在一台 NGINX 服务器上配置多个 Node JS 站点?

How to configure multiples NodeJS sites in one NGINX server?

我需要在一个 NGINX 应用程序服务器(版本 1.10.2 - RHEL 7.2)中配置多个 NodeJS 应用程序实例。 这些实例是:网站和 API 用于开发和测试环境。

有人可以帮助我吗?

谢谢

如果您已经安装了 node.js,并且您正在 运行 上安装网络服务器,那么只需选择两个不同的端口,比如一个用于生产,一个用于测试(可能是暂存)。

安装nginx后配置如下:-

server {
  listen 80;

  server_name example.com;

  location /production {
    proxy_pass http://localhost:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

  location /testing {
    proxy_pass http://localhost:8081;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

}

此处将 example.com 更改为您的域名(如果有)或 localhost

假设您 运行 8080 上的 nodejs 生产网络服务器,您可以为其选择一个子路径,例如 localhost/production。 类似地进行测试,如果您 运行 8081 的 Web 服务器,则选择一条路径,例如 localhost/testing.

我相信这会解决你的问题。

如果您不想使用 /production 和 /testing 等 url,您可以使用不同的端口。

如果您有域 "yourdomain.com" 所以例如生产可以 运行 在 yourdomain.com 和登台(测试)可以 运行 在测试。yourdomain.com

对于此 nginx 配置将是

server {
    listen       80;
    server_name  testing.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8081;
    }
}

server {
    listen       80;
    server_name  yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

其中 8080 是 nodejs 生产网络服务器所在的端口 运行s

8081 正在测试 nodejs 中使用的网络服务器端口