Cómo configurar dos aplicaciones Node.js en una configuración de nginx

Cómo configurar dos aplicaciones Node.js en una configuración de nginx

Guión:

La primera aplicación node.js se ejecuta en 127.0.0.1:8888 y funcionasolo una ruta'dominio.com/track.gif'

La segunda aplicación node.js se ejecuta en 127.0.0.1:3000 y es un panel de estadísticas recopiladas por la primera aplicación y está disponible en 'domain.com' (y otras rutas como 'domain.com/login' o 'domain.com' /panel', etc.)

Cuando uso esta configuración a continuación, solo para la primera aplicación, la primera aplicación funciona muy bien, muestra este archivo gif de seguimiento cuando presiono "domain.com/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;
  }
}

¿Cómo agregar otra (segunda) aplicación node.js a esta configuración para encargarse de todo el enrutamiento para rutas como 'domain.com/' o 'domain.com/dashboard' o 'domain.com/login'?

¡Gracias de antemano!

Respuesta1

Agregue un segundo bloque de ubicación. Coincidirá con cualquier ruta excepto /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;
  }

información relacionada