Regex 负载平衡器后面的清漆不缓存内容

Regex 负载平衡器后面的清漆不缓存内容,regex,varnish,varnish-vcl,Regex,Varnish,Varnish Vcl,我正在使用这一行删除default.vcl中的cookie,以允许虚拟缓存 set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(__[a-z]+|__utma_a2a|has_js|Drupal.toolbar.collapsed|MNO_abc_qrst_\d+)=[^;]*", ""); 但它似乎不起作用 Varnish位于负载平衡器后面,负载平衡器设置一个持久性cookie,该cookie以以下格式显示在标头中: Set-

我正在使用这一行删除
default.vcl
中的cookie,以允许虚拟缓存

set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(__[a-z]+|__utma_a2a|has_js|Drupal.toolbar.collapsed|MNO_abc_qrst_\d+)=[^;]*", "");
但它似乎不起作用

Varnish位于负载平衡器后面,负载平衡器设置一个持久性cookie,该cookie以以下格式显示在标头中:

Set-Cookie:MNO_abc_qrst_80=aaaaaaaaa2a5882045525d5a4a58455e445a4a423660;expires=Fri, 12-Aug-2011 17:23:23 GMT;path=/;httponly
我在模拟器中运行了这个正则表达式,它捕捉到了上面的一行(直到第一行“;”)。所以我认为这个正则表达式应该能捕捉到它,但它似乎没有?当我绕过这个负载平衡器时,内容会被缓存


有什么想法吗?我遗漏了什么?

有两种方法,要么验证是否需要删除整行,
或者剪掉这条线中令人不快的部分。我不知道你在用什么样的正则表达式引擎。为了获得更好的结果,至少需要负面的“向后看”和“向后参照”

压缩验证:
/(设置Cookie:\s*)(?:\1 |。*?\s*)(?:|[a-z]+| | | uuu utma_a2a | has | js | Drupal\.toolbar\.折叠| MNO|u abc|qrst |][^;]*(?:|$).$/s

压缩全局零件替换:
s/(?:)哇,那会让我的头爆炸。谢谢@sln!@KM:没问题,如果你有任何问题,请告诉我。
my $str = 'Set-Cookie: MNO_abc_qrst_80=aaaaaaaaa2a5882045525d5a4a58455e445a4a423660;expires=Fri, 12-Aug-2011 17:23:23 GMT;path=/;httponly';

## Validate part of a cookie, remove line

if ( $str =~ /
       ^ (?= (Set-Cookie: \s*))
       (?:  \1
          | .*? ; \s*
       )
       (?:   __[a-z]+
          |  __utma_a2a
          |  has_js
          |  Drupal\.toolbar\.collapsed
          |  MNO_abc_qrst_\d+
       )
       =
       [^;]*
       (?: ; | $)
       .* $
 /sx )
{
     print "Valid, remove line '$&'\n=============\n\n";
}

## Globally, replace many parts of the cookie

if ( $str =~ s/
       (?:   (?<= ^ Set-Cookie:)
          |  (?<= ;)
       )
       \s* 
       (?:    __[a-z]+
           |  __utma_a2a
           |  has_js
           |  Drupal\.toolbar\.collapsed
           |  MNO_abc_qrst_\d+
       )
       =
       [^;]*
       (?: ; | $)
 //xg )
{
     print "removed parts of cookie\n";
     print "new string = '$str'\n";
}
Valid, remove line 'Set-Cookie: MNO_abc_qrst_80=aaaaaaaaa2a5882045525d5a4a58455e
445a4a423660;expires=Fri, 12-Aug-2011 17:23:23 GMT;path=/;httponly'
=============

removed parts of cookie
new string = 'Set-Cookie:expires=Fri, 12-Aug-2011 17:23:23 GMT;path=/;httponly'