我管理一个只有一个cookie的网站,我们必须使用它,但它将始终是9个值之一(包括没有值)。我想在我们的应用程序服务器前使用varnish,varnish根据cookie值分别缓存每个页面的版本。
因此,如果我们有page /page 1,Varnish应该单独管理一个/page 1的副本,其中包含cookie值a,B,c,d等。
假设我们在Varnish服务器上有足够的内存来处理存储包含所有cookie组合的所有页面。
我们已经尝试了许多VCL设置,但无法确切地找出如何使其工作。Varnish还需要将特定的cookie发送到我们的应用程序服务器,以便我们的应用程序知道发送回哪些内容。
先谢谢你了!
2条答案
按热度按时间ffscu2ro1#
实现这一点很简单,实际上,你应该添加一个自定义的
vcl_hash
:使用此代码,varnish将为每个cookie值存储不同的cookie ......但我建议您也在
vcl_recv
上清理您的cookie,这是[1]的摘录,其中包含Drupal网站的cookie清理:[1][https://github.com/NITEMAN/varnish-bites/blob/master/varnish3/drupal-base.vcl](https://github.com/NITEMAN/varnish-bites/blob/master/varnish3/drupal-base.vcl)
kadbb4592#
NITEMAN为最初提出这个问题的时候提供了一个很好的答案。然而,中间的时间跨度导致了官方支持的VMOD,它使过滤不需要的cookie更容易和更干净。可以在以下位置找到:https://github.com/varnish/varnish-modules
根据README中的示例(稍微调整):