gpt4 book ai didi

varnish - Varnish 缓存中的无限重定向循环

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

我们最近将Varnish放在了Drupal的前面,因为服务器承受着沉重的负担,总体而言,我们感到非常满意。

剩下的唯一问题是,有时我们在缓存的数据中会有一个无限的重定向循环。我们通过HTTP监控发现了这一点。我们每分钟检查一次首页。缓存中的页面有时包含完整的首页,但是设置了Location header ,将用户再次发送到首页。

我们不太确定是什么原因造成的,但是也没有任何线索可以找到原因。当然,处理此问题的最佳方法是在drupal方面,但是我们无法真正说出为什么会发生这种情况。

有没有一种方法可以记录这种情况下的情况?还是有可能在 Varnish 中检测到这种情况并将当前缓存内容标记为无效?

当然,我们不希望总是将故意重定向传递到原始服务器,而是那些会导致无限循环的重定向。

我希望听到一些想法,我们将如何进一步对此进行追踪。许多人在此先感谢各种提示。

最佳答案

我已经找到了解决方法:

sub vcl_fetch {
// Fix a strange problem: HTTP 301 redirects to the same page sometimes go in$
if (beresp.http.Location == "http://" + req.http.host + req.url) {
if (req.restarts > 2) {
unset beresp.http.Location;
#set beresp.http.X-Restarts = req.restarts;
} else {
return (restart);
}
}
}

我给后端第二次(和第三次)机会来返回正确的页面。如果同样失败,则会删除Location header 。之所以可行,是因为正确的页面仅带有附加的无效Location header 。

关于varnish - Varnish 缓存中的无限重定向循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915731/

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