如何在一個 nginx 配置中設定兩個 Node.js 應用程式

如何在一個 nginx 配置中設定兩個 Node.js 應用程式

設想:

第一個 Node.js 應用程式在 127.0.0.1:8888 上運行並提供服務只有一條路線'domain.com/track.gif'

第二個node.js 應用程式在127.0.0.1:3000 上運行,它是第一個應用程式收集的統計資料的儀表板,可在“domain.com”(以及“domain.com/login”或“ domain.com”等其他路由)上使用/儀表板'等)

當我使用下面的配置時 - 僅適用於第一個應用程序,第一個應用程序運行良好,當我點擊“domain.com/track.gif”時,它提供此跟踪 gif 文件:

upstream tracker {
  server 127.0.0.1:8888;
}

server {
  listen 0.0.0.0:80;
  server_name www.domain.com domain.com;
  access_log /var/log/nginx/domain_access.log;
  error_log /var/log/nginx/domain_error.log;

  location /track.gif {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://tracker;
    proxy_redirect off;
  }
}

如何向此配置新增另一個(第二個)node.js 應用程式以處理「domain.com/」或「domain.com/dashboard」或「domain.com/login」等路由的整個路由?

先致謝!

答案1

新增第二個位置區塊。它將匹配 /track.gif 之外的任何路徑。

upstream tracker {
  server 127.0.0.1:8888;
}

server {
  listen 0.0.0.0:80;
  server_name www.domain.com domain.com;
  access_log /var/log/nginx/domain_access.log;
  error_log /var/log/nginx/domain_error.log;

  location /track.gif {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://tracker;
    proxy_redirect off;
  }

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:3000;
    proxy_redirect off;
  }

相關內容