
Squid A와 Squid B라는 두 개의 오징어 서버가 있습니다.
Squid A는 로컬 네트워크를 투명하게 캐시합니다.
정규식과 일치하는 URL에 대한 요청이 있을 때 요청을 정상적으로 처리하는 대신 Squid B를 통해 "리디렉션"하여 Squid B가 요청을 처리하고 결과를 다시 Squid A에 전달하도록 Squid A를 설정하고 싶습니다. 클라이언트에 전달됩니다.
이를 위해 Squid A의 구성 파일을 어떻게 설정합니까?
답변1
오징어 A 구성(일반적으로 /etc/squid/squid.conf)에서 다음을 사용하십시오.
cache_peer <squid server B IP> parent <server B squid port> 3130 no-query no-digest no-netdb-exchange
acl otherproxy url_regex "/etc/squid/divert.txt"
cache_peer_access <Squid server B IP> allow otherproxy
never_direct allow otherproxy
cache_peer_access <squid server B IP> deny all
그리고 다른 ACL 위에 있는 오징어 B 구성을 따릅니다.
acl A_proxy src <Squid server A IP>/32
http_access allow A_proxy
그런 다음 /etc/squid/divert.txt 파일에 정규식을 추가하고 squid를 다시 로드할 수 있습니다. 일치하는 URL은 직접 요청되지 않고 서버 B에서 요청됩니다.
프록시 B에도 acl을 추가한다고 언급한 이유는 프록시 A의 클라이언트에 영향을 미치는 프록시 B의 인증, 연결 제한 등 설정을 피하기 위해서입니다. 이러한 문제는 디버그하기가 매우 어렵습니다. 따라서 프록시 A에서 프록시 B로의 모든 요청을 허용하는 것이 좋습니다. 무언가를 차단하려면 두 프록시 구성에서 모두 차단하세요.
답변2
당신은 오징어 A의 squid.conf에서 다음과 같은 것을 원합니다. 이를 예로 사용하고 정확한 요구 사항에 맞게 조정하십시오.
# 오징어 B를 부모로 정의 캐시_피어 squid.b.example.com 상위 3128 3130 기본값 # 원하는 도메인이나 IP 주소 범위에 대한 ACL을 생성합니다. # 부모(오징어 B)로부터 정보를 얻고 싶지 않습니다. 예를 들어: acl local_domains 도메인 your.local.domains.here acl local_ip dst your.local.ip.addresses.here Always_direct_allow local_domains Always_direct local_ip 허용 # 다른 모든 항목에 대한 직접 액세스를 거부합니다. never_direct 모두 허용
답변3
Squid에는 특히 프록시 서버의 계층적 구성을 지원하는 기능이 있습니다. 그만큼오징어 매뉴얼 페이지해당 주제에 대한 훌륭한 문서가 있습니다.