如果授权标头存在,则禁用mod_cache

我的网站为login和注销的用户提供相同的页面。 来自login用户的请求具有授权标头。 我想使用Apache的mod_cache来为caching页面提供只注销用户。

从一个新的服务器开始,我可以用Authorization头做出请求,而不会被caching。 如果我以注销用户的身份发出请求,请求将被caching。 问题在于使用Authorization头的后续请求会返回caching的结果。

我如何禁用mod_cache的授权头的请求?

编辑:当我写这个,我想出了一个解决scheme似乎工作。

RequestHeader set Cache-Control max-age=300 "expr=-z %{HTTP:Authorization}"

这将在每个没有授权标头的请求上设置一个Cache-Control标头。 有趣的是,login请求的响应现在包含标题“Vary:Authorization”。

这是一个很好的解决scheme? 我应该使用清漆,而不是mod_cache?

谢谢

你是否应该使用清漆的问题应该考虑大量的变数,你没有告诉我们任何事情。 你已经实现的是尽可能接近你所描述的任何我能想到的要求。 虽然我想validationmod_cache / varnish是否正确地遵守“Vary”标题。

然而,你的要求谓词是相当奇怪的。 我怀疑,如果你想在将来改变这些,你可能会遇到问题 – 例如切换到不同的身份validation机制。