Squid 외부 ACL 캐싱: 헬퍼가 매번 호출되지 않는 이유
Squid 외부 ACL 헬퍼를 영구 프로세스, 결정 캐시 키, 명시적인 권한 부여 신선도 요구 사항을 중심으로 설계하십시오.
요청 하나를 기록한 뒤 조용해지는 헬퍼는 정상일 수 있습니다. Squid는 헬퍼에 또 다른 쿼리를 보내지 않고 캐시된 외부 ACL 결과로 규칙을 평가할 수 있습니다.
먼저 재사용 가능한 결정을 정의하십시오. “이 계정이 프록시를 사용할 수 있는가?”는 “이 계정이 이 목적지에 도달할 수 있는가?”와 다른 입력이 필요합니다. 확장 외부 ACL 형식이 캐시 키를 구성합니다. 헬퍼가 사용자 이름과 목적지로 결정하지만 키에 사용자 이름만 포함되면 캐시된 승인이 의도보다 넓게 적용될 수 있습니다. 답을 바꾸는 모든 입력을 포함하고 동등한 결정을 조각내는 세부 정보는 피하십시오.
다음으로 신선도를 선택하십시오. 양수 ttl 및 negative_ttl은 일치 및 불일치 결과를 제어하고, grace는 항목이 만료되기 전에 새로 고침을 시작할 수 있습니다. 취소된 계정의 캐시된 승인이 이후 결정에 영향을 줄 수 있는 기간을 정하십시오. 이 설정 중 어느 것도 설정된 CONNECT 터널을 모든 바이트나 내부 HTTPS 요청에 대해 다시 승인하지 않습니다. 헬퍼가 트래픽 할당량을 적용하면 잔액이 변경된 후에도 허용된 전송이 계속될 수 있습니다.
헬퍼는 영구 프로토콜 참여자이며 요청마다 새 스크립트 프로세스일 필요는 없습니다. 연속 쿼리 줄에 대비해 준비 상태로 유지하고 각 응답을 신속히 보내십시오. 진단은 다른 채널에 두십시오. 동시성이 활성화되면 해당 제공된 채널 식별자를 반환하십시오.
마지막으로 느림, 사용 불가, 내부 오류 결과를 정의하고 주변 ACL 순서가 이를 생성하도록 하십시오. 재사용 가능한 응답의 특이성과 허용된 수명이 모두 액세스 요구 사항과 일치할 때 설계가 완료됩니다.