gpt4 book ai didi

Varnish 验证缓存的请求

转载 作者:行者123 更新时间:2023-12-03 17:46:35 24 4
gpt4 key购买 nike

我有一个私有(private) Intranet 风格的网站,每个人都必须先登录才能看到任何内容。一旦他们登录,每个页面都是相同的 - 所以我希望这些页面缓存在 Varnish 中,但仍然需要快速的用户访问检查。

所以我想这样做,我会在我的 VCL 文件中创建一个规则,将每个传入的请求重写到一个文件。该文件不被缓存并检查用户是否有效,如果是,则打印缓存页面的 esi 包含。

这一切都很好,除了将缓存页面的第二个请求标识为经过身份验证。我正在考虑在请求中添加一个查询字符串,并检查它。或者也许有一种方法可以检查是否已通过 esi:include 发出请求。
也许我以错误的方式处理这个问题?

有什么建议么?

最佳答案

如果您不想在 URL 中使用带有身份验证 token 的经过身份验证的请求,您可以检查 req.esi_level 并确保它对于需要登录的资源大于 0。

if (req.esi_level == 0 && req.url ~ "^/private/.*" ) {
error (403);
}

需要注意的是,您需要防止从除 Varnish 之外的所有内容访问您的后端——您可能无论如何都在这样做,但值得注意的是。

关于Varnish 验证缓存的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17674219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com