So richten Sie zwei Node.js-Apps in einer Nginx-Konfiguration ein

So richten Sie zwei Node.js-Apps in einer Nginx-Konfiguration ein

Szenario:

Die erste node.js-App läuft auf 127.0.0.1:8888 und bedientnur eine Strecke'domain.com/track.gif'

Die zweite node.js-App läuft auf 127.0.0.1:3000 und ist ein Dashboard für von der ersten App erfasste Statistiken und ist auf „domain.com“ (und anderen Routen wie „domain.com/login“ oder „domain.com/dashboard“ usw.) verfügbar.

Wenn ich die folgende Konfiguration verwende – nur für die erste App – funktioniert die erste App einwandfrei. Sie liefert diese Tracking-GIF-Datei, wenn ich auf „domain.com/track.gif“ klicke:

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

Wie füge ich dieser Konfiguration eine weitere (zweite) Node.js-App hinzu, die sich um das gesamte Routing für Routen wie „domain.com/“, „domain.com/dashboard“ oder „domain.com/login“ kümmert?

Dank im Voraus!

Antwort1

Fügen Sie einen zweiten Standortblock hinzu. Er passt zu jedem Pfad außer /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;
  }

verwandte Informationen