Barniz como proxy inverso del servidor Apache2, problema de redirección de puertos

Barniz como proxy inverso del servidor Apache2, problema de redirección de puertos

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

información relacionada