【问题标题】:How to configure multiples NodeJS sites in one NGINX server? [closed]如何在一台 NGINX 服务器上配置多个 Node JS 站点? [关闭]
【发布时间】:2017-03-27 00:15:39
【问题描述】:

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

有人可以帮助我吗?

谢谢

【问题讨论】:

  • 你能在nodejs上安装nginx和运行web服务器吗?
  • @Aditya,是的,我在 nginx 上运行了一个应用程序,但我需要配置更多端点
  • 您愿意分享您在 nginx 中使用的配置。我很想知道您是否像我建议的那样在 url 中使用路径,或者您是否使用不同的端口

标签: node.js nginx pm2 rhel7


【解决方案1】:

如果您已经安装了 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 上运行,而 staging(testing) 可以在 testing.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 生产网络服务器运行的端口

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

【讨论】:

  • 值得注意的是,您也可以使用子域而不是路径来做到这一点。
  • 谢谢,效果很好
  • 在节点 js server.js 中设置了什么? server.listen(8080) ?
猜你喜欢
  • 2014-03-17
  • 1970-01-01
  • 2019-07-22
  • 2018-12-12
  • 2021-11-09
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多