如何使清漆不缓存某个文件夹

时间:2018-02-27 15:39:20

标签: caching varnish varnish-vcl simplesamlphp

我目前正在尝试为我的网站设置simplesamlphp身份验证,但在配置期间,当以管理员身份登录时,我会继续运行重定向循环。我得出结论是因为无法启动会话,我认为这是由缓存的simplesaml文件夹引起的。我试图这样做,所以我的服务器上的simplesaml文件夹没有被缓存。我已经在我的服务器上编辑了default.vcl文件并进行了以下设置

  # Do not cache these paths.


if (req.url ~ "^/status\.php$" ||
  req.url ~ "^/update\.php" ||
  req.url ~ "^/install\.php" ||
  req.url ~ "^/batch/.*$" ||
  req.url ~ "^/admin" ||
  req.url ~ "^/admin/.*$" ||
  req.url ~ "^/user" ||
  req.url ~ "^/user/.*$" ||
  req.url ~ "^/users/.*$" ||
  req.url ~ "^/info/.*$" ||
  req.url ~ "^/flag/.*$" ||
  req.url ~ "^.*/ajax/.*$" ||
  req.url ~ "^.*/ahah/.*$" ||
  req.url ~ "^/simplesaml/.*$" ||
  req.url ~ "^/saml_login"){
   return (pass);
  }

正如您所看到的,我已将simplesaml文件夹添加到不缓存但它无法正常工作。我正在努力想知道自己哪里出错了。

欢迎任何帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

VCL是正确的。 它可能需要一段时间才能启动,因为它可能是简单的文件TTL尚未过期而你仍然在缓存simplesaml文件。一旦文件被破解并且将触发对该文件夹的新请求,该内容将不被缓存。

答案 1 :(得分:0)

io

如果条件应该在 vcl_rec 内,那么所有的工作。

#wordpress 示例

sub vcl_rec {

if (req.url ~ "^/status\.php$" ||
  req.url ~ "^/update\.php" ||
  req.url ~ "^/install\.php" ||
  req.url ~ "^/batch/.*$" ||
  req.url ~ "^/admin" ||
  req.url ~ "^/admin/.*$" ||
  req.url ~ "^/user" ||
  req.url ~ "^/user/.*$" ||
  req.url ~ "^/users/.*$" ||
  req.url ~ "^/info/.*$" ||
  req.url ~ "^/flag/.*$" ||
  req.url ~ "^.*/ajax/.*$" ||
  req.url ~ "^.*/ahah/.*$" ||
  req.url ~ "^/simplesaml/.*$" ||
  req.url ~ "^/saml_login"){
   return (pass);
  }



}

更完美的缓存配置遵循指南与示例。

https://gist.github.com/tejastank/8b9ead9129e1ef9960ccb8d39ebc5067#file-default-vcl_preface-md