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