如何在varnish4.0.3中保持相同的请求到后端,直到第一个响应

时间:2016-10-21 10:11:58

标签: varnish varnish-vcl varnish-4

我的网站有以下请求流程 -

AWS CloudFront - > ELB - >清漆4.0.3 - > NginX(反向代理) - > ELB - > Drupal7

正常工作:正常流量按预期工作。

问题:当我在我的网站上运行负载测试时,Drupal服务器会多次发出相同的请求。例如我的jMeter轰炸了500次对http://website/index.php的调用,~50%的请求击中了Drupal服务器。

期望:Varnish应该保留所有相同的请求,直到第一次回复。

观察:将所有相同的请求发送到后端,直到第一个请求的响应出现

如果有人实施了此类功能,请分享

1 个答案:

答案 0 :(得分:0)

这很奇怪,因为Varnish应按照文档说的那样持有这些请求: https://www.varnish-cache.org/docs/4.0/users-guide/vcl-grace.html

也许第一个发送到后端的请求最终会在一个不可缓存的响应中获得“HIT-FOR-PASS”(后续相同的请求不会到达缓存,而是直接从后端获取)。

varnishlog的输出是什么,您是否发送了阻止缓存的特殊标头?