Tenho procurado e tem muita gente com o mesmo problema, mas não tem uma solução clara (ou pelo menos não encontrei).
Estou usando o Varnish-Cache (3.0) como proxy reverso escutando na porta 80 para um servidor web Apache 2 escutando na porta 88.
Se eu solicitar o seguinte URL, tudo funcionará bem:http://servidor/coisas/
Mas, se eu solicitar isso:http://servidor/coisas(sem o "/" no final), o navegador é redirecionado para a porta do backend Apache (http://servidor:88/coisas/).
Como posso configurar o comportamento do Apache 2 nessa situação?
Desde já, obrigado!
Responder1
Verifique a diretiva UseCanonicalName em 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
Você também pode removê-lo com verniz, tente isto:
sub vcl_fetch {
if (beresp.status == 301 || beresp.status == 302)
{
set beresp.http.Location = regsub(beresp.http.Location, "^(\w+://[^/]+):\d+", "\1");
}
}