He estado buscando y hay mucha gente con el mismo problema, pero no hay una solución clara (o al menos yo no la he encontrado).
Estoy usando Varnish-Cache (3.0) como proxy inverso que escucha en el puerto 80 para un servidor web Apache 2 que escucha en el puerto 88.
Si solicito la siguiente URL, funciona bien:http://servidor/cosas/
Pero, si solicito esto:http://servidor/cosas(sin el "/" al final), el navegador es redirigido al puerto del backend Apache (http://servidor:88/cosas/).
¿Cómo puedo configurar el comportamiento de Apache 2 en esa situación?
¡Gracias de antemano!
Respuesta1
Consulte la directiva UseCanonicalName en httpd.conf
#
# UseCanonicalName: Determines how Apache constructs self-referencing
# URLs and the SERVER_NAME and SERVER_PORT variables.
# When set "Off", Apache will use the Hostname and Port supplied
# by the client. When set "On", Apache will use the value of the
# ServerName directive.
#
UseCanonicalName Off
También puedes quitarlo sobre barniz, prueba esto:
sub vcl_fetch {
if (beresp.status == 301 || beresp.status == 302)
{
set beresp.http.Location = regsub(beresp.http.Location, "^(\w+://[^/]+):\d+", "\1");
}
}