Reindirizzamento da un nginx a un altro


10

Ho due server (A e B) con NGINX. Il server A sta servendo il vecchio sito e il server B sta servendo un nuovo sito. Ho aggiornato il mio DNS ma è piuttosto lento: nel mio ufficio vedo ancora il mio vecchio sito:

subdomain.site.com

Come posso reindirizzare tutte le richieste dal server A per questo particolare sottodominio al server B?

Ora entrambi sono gestiti con questo in NGINX:

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

Risposte:


14

Poiché utilizzano entrambi lo stesso nome_server, non è possibile eseguire un semplice reindirizzamento.

Probabilmente puoi fare una sorta di proxy, tuttavia, seguendo le linee seguenti sul vecchio server:

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

Quindi, fondamentalmente, configura il vecchio server in modo che passerà tutte le richieste al nuovo server. Naturalmente, inserisci la configurazione di cui hai bisogno per client_max_body_size e tutto il resto.


Come si può fare usando SSL? La macchina proxy ha bisogno del certificato ssl e del server upstream?
earthmeLon

@earthmeLon Nella domanda originale, questo proxy era una misura temporanea per l'aggiornamento DNS. In tal caso, sia i server nuovi che quelli vecchi avrebbero il certificato SSL. Nel caso dell'upstream, è possibile connettersi tramite SSL o HTTP semplice; poiché controlli entrambe le caselle, dipende dalle tue preferenze.
cjc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.