한 nginx에서 다른 nginx로 리디렉션


10

NGINX가있는 두 개의 서버 (A와 B)가 있습니다. 서버 A는 이전 사이트를 제공하고 서버 B는 새 사이트를 제공합니다. DNS를 업데이트했지만 속도가 느립니다. 사무실에서 여전히 기존 사이트가 표시됩니다.

subdomain.site.com

이 특정 하위 도메인에 대한 서버 A의 모든 요청을 서버 B로 리디렉션하려면 어떻게해야합니까?

이제 둘 다 NGINX에서 이것을 처리합니다.

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

답변:


14

둘 다 동일한 server_name을 사용하므로 간단한 리디렉션을 수행 할 수 없습니다.

그래도 이전 서버에서 다음 줄을 따라 일종의 프록시를 수행 할 수 있습니다.

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

따라서 기본적으로 이전 서버는 모든 요청을 새 서버로 전달하도록 구성하십시오. 물론, client_max_body_size에 필요한 구성을 입력하십시오.


SSL을 사용하여 어떻게이 작업을 수행 할 수 있습니까? 프록시 머신에는 업스트림 서버뿐만 아니라 SSL 인증서가 필요합니까?
earthmeLon

@earthmeLon 원래 질문에서이 프록시는 DNS 업데이트에 대한 임시 측정이었습니다. 이 경우 새 서버와 기존 서버 모두 SSL 인증서를 갖게됩니다. 업스트림의 경우 SSL 또는 일반 HTTP를 통해 연결할 수 있습니다. 두 상자를 모두 제어 할 수 있으므로 원하는대로 사용할 수 있습니다.
cjc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.