Varnish의 해시 세트에 대한 빠른 액세스

Varnish의 해시 세트에 대한 빠른 액세스

저는 공개 리소스와 제한된 리소스를 혼합하여 제공하는 Varnish 파이프라인을 개발 중입니다.

공용 리소스에 대한 액세스가 트래픽의 대부분(>99.9%)을 차지하므로 인증 토큰 유효성 검사 및 제한되지 않은 리소스에 대한 기타 사항을 우회하는 지름길을 만들고 싶습니다. 또는 더 나은 방법은 authN/Z만 통과하는 것입니다. 리소스가 일종의 블랙리스트에 있는 경우 경로입니다.

이 블랙리스트에는 최대 약 1M(향후 몇 년 내)의 UUID4 항목이 포함될 수 있습니다. 이러한 일반 텍스트 파일은 디스크에서 약 3.7GB를 차지하므로 RAM 용량이 좋은 머신은 이를 모두 메모리에 보관할 수 있어야 합니다.

제 질문은 조회 속도가 매우 빨라지도록 이 블랙리스트를 구현하는 방법에 관한 것입니다. 나는 "네이티브" 해시 세트나 Memcached 또는 유사한 방법을 생각했습니다. Memcached가 배포되면 속도가 느려질 가능성이 매우 높습니다. 비슷한 접근 방식을 구현한 사람이 있나요? Varnish에는 어떤 도구가 있나요?

답변1

Varnish에서는 객체의 해시에 직접 액세스할 수 없습니다.

그러나 지적한 대로 제한된 리소스 목록을 키-값 저장소에 저장할 수 있습니다.

Varnish Enterprise의 KVStore

순수한 실행 속도에 관해 이야기할 때,Varnish Enterprise에는 KVStore 모듈이 있습니다.. 이것KV스토어로컬 메모리에 보관되며 다시 시작할 때 파일에서 다시 빌드할 수 있습니다.

Varnish Enterprise는 무료가 아니며 라이센스 키를 구입해야 합니다. 엔터프라이즈 버전에 대한 진입 장벽을 낮추고 싶다면 AWS, Azure, GCP 및 OCI의 Varnish Enterprise 공식 머신 이미지가 있습니다. 우분투와 레드햇 모두에 해당됩니다. 선불 라이선스 비용을 지불하지 않으며 시간당 요금이 부과됩니다. 보다https://aws.amazon.com/marketplace/pp/B07L7HVVMF?ref_=srh_res_product_titleAWS의 예를 들어

레디스 VMOD

만약에바니시 엔터프라이즈당신을위한 것이 아닙니다. 당신도 사용할 수 있습니다Carlos Abalde의 Redis VMOD. 무료이고 오픈 소스이며 작업을 꽤 잘 수행합니다.

넌 다시 달릴 수 있어루아Redis 내에서 더 복잡한 로직을 실행하기 위한 VCL 내부 스크립트.

Redis가 속도를 늦출까 봐 걱정된다면 연결 수를 제한하고 연결이 공유되는지 확인할 수도 있습니다.

관련 정보