我正在比较 Squid、Varnish 和 Ngix。Squid 和 Varnish 是否具有此 Ngix 功能?
启用 proxy_cache_lock 后,每次只允许一个请求通过将请求传递给代理服务器来填充根据 proxy_cache_key 指令标识的新缓存元素。同一缓存元素的其他请求将等待响应出现在缓存中,或者等待释放此元素的缓存锁...
基本上,我想防止 Squid 对同一可缓存资源进行并发请求。例如:当 10 个客户端同时请求同一个未缓存的 URI 时,Squid 将只执行一个请求,然后将相同的结果返回给其他 9 个客户端。
答案1
Varnish 就是这样做的。参见这里。
答案2
在 squid 中,这个功能被称为“collapsed_forwarding”,它是 Squid 2.7 版本中存在的一项功能,最近已移植到仍处于开发早期阶段的 squid 3.5。