squid proxy가 호스트 헤더를 덮어 씁니다. 어떻게해야합니까?


8

오징어에 다음과 같은 문제가 있습니다.

일부 클라이언트는 오징어 프록시를 통해 62 대의 서버에 동시에 액세스합니다. 모든 서버의 호스트 이름은 같지만 (www.example.com) 공용 IP는 다릅니다 (123.123.123.2-123.123.123.63). 서버 소유자는 일종의 DNS 라운드 로빈을 사용합니다.

오징어 서버와 클라이언트에만 액세스 할 수 있습니다. 서버에 대한 연결은 프록시 IP를 통해서만 허용됩니다.

프록시가 없으면 http // 123.123.123.5 / dataforme에서 데이터로드 요청을 보내지 만 호스트 헤더 "www.example.com"을 보냅니다. 그것은 정상적으로 작동합니다.

그러나 이제는 오징어를 비 캐싱 프록시로 사용하는 것은 더 이상 불가능합니다. 오징어는 보낸 요청 호스트 헤더를 무시합니다. 이렇게하면 대상 헤더가 호스트 헤더가 올바르게 전송되지 않아 전달할 데이터를 알 수 없습니다.

내가 설정

url_rewrite_host_header off

그러나 이것은 아무런 영향을 미치지 않습니다. 이 옵션은 오징어를 리디렉터로 사용할 때만 사용되는 것으로 보입니다. 그것은 내가하는 일이 아닙니다.

가져올 다른 사이트가 없으면 다음이 작동합니다.

header_access Host deny all
header_replace Host www.example.com

그러나 이렇게하면 모든 요청에 ​​www.example.com 호스트 헤더가 표시됩니다. 그러면 더 이상 다른 사이트에 액세스 할 수 없습니다.

어떡해?

도움을 주셔서 감사합니다.


다시 작성되는 호스트 헤더는 무엇입니까?
앤드류 B

호스트 헤더는 IP 주소 (이 예에서는 123.123.123.5)로 다시 작성됩니다.
Chris

실제로 오징어가 헤더를 다시 쓰지만 "DNS 라운드 로빈"이 아닌지 확인 했습니까? tcpdump도움이 될 수 ...
kay27

답변:


0

잘못된 지시어가 없으면 표준 오징어 설치는 그렇게하지 않습니다. 표준 버전을 사용하는 경우 구성을 처음부터 다시 실행하십시오. 사용자 정의 컴파일 인 경우 코드 및 컴파일 옵션을 검토해야합니다.


1
지정하십시오 wath 컴파일러 옵션이 활성화되어 있어야합니다
페데리코 갈리을

대부분 헤더 재 작성 옵션. Btw, 기본 권장 옵션 또는 표준 이진을 사용하는 것이 좋습니다. 컴파일하는 내용을 잘 모르면 오징어가 지저분하고 불안정해질 수 있습니다.
MTG

0

이 줄을 오징어 설정에 추가하십시오. 도움이되는지 보자.

request_header_access Referer deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
forwarded_for off
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.