Redireccionando de un nginx a otro


10

Tengo dos servidores (A y B) con NGINX. El servidor A está sirviendo el sitio antiguo y el servidor B está sirviendo un sitio nuevo. He actualizado mi DNS pero es bastante lento: en mi oficina todavía veo mi sitio anterior:

subdominio.sitio.com

¿Cómo puedo redirigir todas las solicitudes del servidor A para este subdominio en particular al servidor B?

Ahora ambos se manejan con esto en NGINX:

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

Respuestas:


14

Dado que ambos usan el mismo nombre_servidor, no puede hacer una redirección simple.

Sin embargo, probablemente pueda hacer algún tipo de proxy, en la línea de lo siguiente en el servidor anterior:

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

Entonces, básicamente, configure el servidor anterior para que pase todas las solicitudes al nuevo servidor. Por supuesto, pon la configuración que necesites para client_max_body_size y todo eso.


¿Cómo se puede hacer esto usando SSL? ¿La máquina proxy necesita el certificado SSL así como el servidor ascendente?
earthmeLon

@earthmeLon En la pregunta original, este proxy era una medida temporal para la actualización de DNS. En ese caso, los servidores nuevos y antiguos tendrían el certificado SSL. En el caso del flujo ascendente, puede conectarse a través de SSL o HTTP simple; Como controlas ambas cajas, dependerá de tu preferencia.
cjc
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.