Apache2 서버의 역방향 프록시로 광택 처리, 포트 리디렉션 문제

Apache2 서버의 역방향 프록시로 광택 처리, 포트 리디렉션 문제

찾아봤는데 같은 문제를 겪고 있는 사람들이 많이 있지만 명확한 해결책이 없습니다(또는 적어도 저는 찾지 못했습니다).

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

관련 정보