Redirecionando de um nginx para outro

10

Eu tenho dois servidores (A e B) com o NGINX. O servidor A está atendendo ao site antigo e o servidor B está atendendo a um novo site. Atualizei meu DNS, mas é bastante lento: no meu escritório, ainda vejo meu site antigo:

subdomínio.site.com

Como redirecionar todas as solicitações do servidor A para esse subdomínio específico para o servidor B?

Agora, ambos são tratados com isso no NGINX:

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

Respostas:

14

Como os dois usam o mesmo nome_do_servidor, não é possível fazer um redirecionamento simples.

Provavelmente, você pode executar algum tipo de proxy, seguindo as seguintes linhas no servidor antigo:

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

Então, basicamente, configure o servidor antigo para que ele passe todas as solicitações para o novo servidor. Obviamente, insira qualquer configuração que você precise para client_max_body_size e tudo mais.

cjc
fonte
Como isso pode ser feito usando SSL? A máquina proxy precisa do certificado ssl e do servidor upstream?
precisa saber é o seguinte
@earthmeLon Na pergunta original, esse proxy era uma medida temporária para a atualização do DNS. Nesse caso, servidores novos e antigos teriam o certificado SSL. No caso do upstream, você pode conectar-se via SSL ou HTTP simples; como você controla as duas caixas, isso depende de sua preferência.
Cjc 22/04