Umleiten von einem Nginx zum anderen


10

Ich habe zwei Server (A und B) mit NGINX. Server A bedient die alte Site und Server B bedient eine neue Site. Ich habe mein DNS aktualisiert, aber es ist ziemlich langsam: In meinem Büro sehe ich immer noch meine alte Site:

subdomain.site.com

Wie kann ich alle Anforderungen von Server A für diese bestimmte Subdomain an Server B umleiten?

Jetzt werden beide in NGINX damit behandelt:

server {
  listen 80;
  server_name subdomain.site.ru;
  root /var/www/subdomain/public;
  passenger_enabled on;
}

Antworten:


14

Da beide denselben Servernamen verwenden, können Sie keine einfache Umleitung durchführen.

Auf dem alten Server können Sie jedoch wahrscheinlich eine Art Proxy ausführen, wie folgt:

upstream newserver {
  server 172.16.0.1:80;  # this is new server, by IP address
}

server {
  listen 80;
  server_name subdomain.site.ru;
  location / {
    proxy_set_header Host $host;
    proxy_pass http://newserver;
  }
}

Konfigurieren Sie den alten Server also so, dass alle Anforderungen an den neuen Server weitergeleitet werden. Geben Sie natürlich die Konfiguration ein, die Sie für client_max_body_size und all das benötigen.


Wie geht das mit SSL? Benötigt der Proxy-Computer das SSL-Zertifikat sowie den Upstream-Server?
EarthmeLon

@earthmeLon In der ursprünglichen Frage war dieser Proxy eine vorübergehende Maßnahme für das DNS-Update. In diesem Fall verfügen sowohl neue als auch alte Server über das SSL-Zertifikat. Im Upstream können Sie eine Verbindung über SSL oder über einfaches HTTP herstellen. Da Sie beide Boxen steuern, liegt es an Ihren Vorlieben.
cjc
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.