Przekierowanie z jednego nginx do drugiego


10

Mam dwa serwery (A i B) z NGINX. Serwer A obsługuje starą witrynę, a serwer B obsługuje nową witrynę. Zaktualizowałem swój DNS, ale działa dość wolno: w moim biurze wciąż widzę moją starą witrynę:

subdomain.site.com

Jak mogę przekierować wszystkie żądania z serwera A dla tej konkretnej subdomeny na serwer B?

Teraz oba są obsługiwane w NGINX:

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

Odpowiedzi:


14

Ponieważ oba używają tej samej nazwy serwera, nie można wykonać prostego przekierowania.

Prawdopodobnie możesz zrobić coś w rodzaju proxy na starym serwerze:

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

Zasadniczo skonfiguruj stary serwer, aby przekazywał wszystkie żądania do nowego serwera. Oczywiście, ustaw dowolną konfigurację, której potrzebujesz dla client_max_body_size i tak dalej.


Jak można to zrobić za pomocą protokołu SSL? Czy maszyna proxy potrzebuje certyfikatu ssl, a także serwera nadrzędnego?
earthmeLon

@earthmeLon W pierwotnym pytaniu ten serwer proxy był tymczasowym środkiem aktualizacji DNS. W takim przypadku zarówno nowy, jak i stary serwer będą miały certyfikat SSL. W przypadku wysyłania danych można łączyć się za pośrednictwem protokołu SSL lub zwykłego protokołu HTTP; ponieważ kontrolujesz oba pola, będzie to zależało od twoich preferencji.
cjc
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.