小编Alb*_*dez的帖子

使用Cookie标头使Varnish忽略请求

清漆默认行为是永远不会查找包含Cookie标头的请求.换句话说,Cookie永远不会缓存包含标头的请求.我需要覆盖此行为以忽略带有Cookie标头的请求.

考虑我的应用程序中的下一个用户行为:

  1. 用户进入应用程序主页(/),页面应该被缓存,后端返回public缓存控件,一切都很好,页面被Varnish缓存.
  2. 用户导航到/not-cacheable不可缓存的自定义页面(),后端返回private缓存控件.还会Set-Cookie在响应中返回标头.Varnish忽略了这个请求,用户最终得到了一个cookie.到现在为止还挺好.
  3. 用户导航回主页(/),记住,已经缓存了.问题是,用户请求现在带有Cookie标题.这会导致Varnish忽略该请求并委托给后端.

删除Cookie 将不起作用,因为当用户返回/not-cacheable路线时,他将看不到他的个性化页面,因为Cookie标题已被条带化.相反,后端返回一个新生成的会话,其中包含一个新的id Set-Cookie.

此外,Cookie在Varnish中查找每个请求都会导致每个请求(有关方法或后端响应)被缓存.

如果有一种方法告诉Varnish只是忽略Cookie标头,这样我就可以通过让后端决定请求是否可以缓存来缓存具有该标头的请求.

有任何想法吗?

cookies http varnish browser-cache varnish-vcl

6
推荐指数
1
解决办法
2703
查看次数

在具有匿名值的列表中查找元组元素

我想在这个列表中找到:

test = [ (1,1,1,0) , (1,1,1,1) , (1,3,1,0) , (1,4,2,0) , (1,5,2,0) , (1,6,2,0) ,
         (3,1,3,5) , (3,2,3,4) , (3,3,3,3) , (3,4,4,1) , (3,5,4,2) , (3,6,4,6) ,
         (2,1,1,2) , (2,2,1,5) , (2,3,1,0) , (2,4,2,4) , (2,5,2,1) , (2,6,2,0) ,
         (4,1,3,0) , (4,2,3,0) , (4,3,3,0) , (4,4,4,0) , (4,5,4,0) , (4,6,4,0) ,
         (5,1,5,1) , (5,2,5,6) , (5,3,5,0) , (5,4,6,2) , (5,5,6,3) , (5,6,6,0) ,
         (6,1,5,3) , (6,2,5,2) , (6,3,5,4) , (6,4,6,5) , (6,5,6,6) , (6,6,6,1) ]
Run Code Online (Sandbox Code Playgroud)

具有匿名元素的元组,如(1,1,X,X),其中X可以是任何值:

*> find (==(1,1,1,0)) …
Run Code Online (Sandbox Code Playgroud)

variables haskell anonymous

3
推荐指数
2
解决办法
446
查看次数