찾아봤는데 같은 문제를 겪고 있는 사람들이 많이 있지만 명확한 해결책이 없습니다(또는 적어도 저는 찾지 못했습니다).
포트 88에서 수신하는 Apache 2 웹 서버에 대해 포트 80에서 수신하는 역방향 프록시로 Varnish-Cache(3.0)를 사용하고 있습니다.
다음 URL을 요청하면 정상적으로 작동합니다.http://서버/물건/
하지만 내가 이것을 요청한다면:http://서버/물건(끝에 "/" 없음) 브라우저는 백엔드 Apache의 포트로 리디렉션됩니다(http://서버:88/물건/).
이 상황에서 Apache 2의 동작을 어떻게 설정합니까?
미리 감사드립니다!
답변1
httpd.conf에서 UseCanonicalName 지시어를 확인하세요.
#
# 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
바니시로 제거할 수도 있습니다. 다음을 시도해 보세요.
sub vcl_fetch {
if (beresp.status == 301 || beresp.status == 302)
{
set beresp.http.Location = regsub(beresp.http.Location, "^(\w+://[^/]+):\d+", "\1");
}
}