하나의 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;
  }
}

'domain.com/', 'domain.com/dashboard' 또는 'domain.com/login'과 같은 경로의 전체 라우팅을 관리하기 위해 이 구성에 또 다른 (두 번째) node.js 앱을 추가하는 방법은 무엇입니까?

미리 감사드립니다!

답변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;
  }

관련 정보