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

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.

cjc
quelle
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