Me he encontrado con una situación que no puedo entender. Tenemos un cortafuegos Fortigate que hemos habilitado para equilibrar la carga en dos servidores web Apache de back-end. Luego se asigna un nombre DNS a la IP virtual en Load Balancer.
Como se esperaba, cuando navega hasta el nombre / URL de DNS (por ejemplo, www.something.com), Load Balancer sirve una página desde uno de los servidores web Apache de back-end. La URL en el navegador permanece en www.something.com . Por lo que entiendo, el Load Balancer en este caso es simplemente reenviar paquetes entre el navegador y Apache mientras permanece siempre en la ruta.
Sin embargo, si busco la dirección IP a la que está asignado el DNS, entonces Load Balancer devuelve un HTTP 302 encontrado, con el encabezado de ubicación establecido en la URL DNS de uno de los Apaches. La URL en el navegador cambia al DNS del servidor de fondo.
¿Por qué el equilibrador de carga redirige cuando se consulta a través de IP, pero reenvía correctamente en la ruta cuando se consulta a través del nombre DNS?
Después de leer el equilibrio de carga basado en el host HTTP en el documento Fortigate Load Balancing , puedo ver cómo puede tener una configuración de equilibrio de carga atípica que podría resultar en lo que usted describe. Sin embargo, sin parte de su configuración, no podemos estar seguros de si este es el caso para usted.
Fortigate FortiOS permite la creación de un servidor virtual que está vinculado a servidores reales que tienen una configuración de encabezado de host diferente . Si alguna solicitud coincide con el VIP de su servidor virtual, las solicitudes de carga equilibrada solo irán a los servidores reales que coincidan con eso
host header
. La parte más importante que explica muy bien sus síntomas es que uno de los servidores reales puede omitir el encabezado del host para que coincida con cualquier encabezado del host.El servidor real sin un encabezado de host podría haberse configurado como una especie de "captura general" que aterriza en un sitio que realiza la redirección.
Usando el ejemplo a continuación, solo el primer y segundo servidor manejan el tráfico que coincide con su nombre DNS preferido a través del encabezado del host, pero el tercer servidor toma cualquier cosa que coincida con todos los otros encabezados del host que incluye el DNS VIP y lo envía a un sitio que podría hacer una redirección .
Supongo que el equilibrio de carga del firewall podría estar haciendo la redirección en sí, pero no podemos decirlo con la información limitada proporcionada.
fuente