Varnish:如何将用户代理作为信息发送到wordpress进行404监控
我试图找出那些只做关键词收集和(对我来说)无用的搜索引擎优化销售的机器人,比如MJ12bot或AhrefsBot。我的网站已经有24年的历史了,大部分时间都在Wordpress下,但我在某个时候尝试了mediawiki,所以我会得到很多404 我有ApacheVarnishWordPress堆栈,我正在使用Varnish来阻止不需要的机器人。bot.vlc是这样的:Varnish:如何将用户代理作为信息发送到wordpress进行404监控,wordpress,http-status-code-404,user-agent,varnish,Wordpress,Http Status Code 404,User Agent,Varnish,我试图找出那些只做关键词收集和(对我来说)无用的搜索引擎优化销售的机器人,比如MJ12bot或AhrefsBot。我的网站已经有24年的历史了,大部分时间都在Wordpress下,但我在某个时候尝试了mediawiki,所以我会得到很多404 我有ApacheVarnishWordPress堆栈,我正在使用Varnish来阻止不需要的机器人。bot.vlc是这样的: sub bad_bot_detection { if ( req.http.user-agent ~ "Daum" ||
sub bad_bot_detection {
if (
req.http.user-agent ~ "Daum"
|| req.http.user-agent ~ "MJ12bot"
...
) {
return(synth(403, "Forbidden Bots"));
} elseif (
req.http.user-agent ~ "APIs-Google"
|| req.http.user-agent ~ "Mediapartners-Google"
...
) {return(pipe);
} else {
unset req.http.User-Agent;
}
}
在后端/wordpress 404监控由Rank Math SEO插件完成。我正在使用返回(管道);对于“好机器人”,只需获取用户代理。否则,我不知道什么时候应该修复404,什么时候不关心。人类不是问题,因为如果他们得到404,那么就有一个推荐人。所以,我想找到机器人的用户代理,我可以提供给他们很好的错误403
我在谷歌上搜索了很多,varnish和user agent的所有点击都是关于如何为手机提供不同的缓存的类型,或者提示为什么会有所不同:user agent不利于缓存比率。一些文章建议使用Apache2的日志,但由于未设置req.http.User-Agent,所以没有太大帮助;在default.vcl中。我知道所有这些,但我正在尝试将用户代理的名称传递给404监控,而不告诉它
也许我应该使用Varnish日志,但我也找不到用户代理
那么,我应该学习如何与大量404一起生活,还是复制并粘贴所有那些“坏机器人列表”?我可以用清漆来搜索404机器人的名字吗
编辑:有一个语言障碍(如果你能学一些芬兰语,这会更容易),所以让我们看一些截图
这就是我得到的:
这就是我所需要的,但没有每个用户代理单独的“缓存桶”:
(编辑&)关闭(暂时关闭)
如果不使用return(管道),就不可能将用户代理发送到像Wordpress这样的后端应用程序;女巫用清漆是个很糟糕的主意
使用返回(pass);也不起作用,因为它只是不使用缓存,但会执行任何其他操作,如删除vary:user-agent-无论如何,即使它可以工作,但只将user-agent发送到404监视器也是个坏主意
这实际上有点令人沮丧。无用机器人的404不需要任何修复,但谷歌机器人/bingbot/等需要,现在我不知道谁是谁。所以我做了一个bad-bot.vcl来阻止已知的bad/seo收割机,并让google/bing/etc使用return(pipe)通过清漆,所以我让他们的用户代理访问404监视器。我现在可能会(也可能不会)因为加载时间稍慢而失去一些SEO,但这并不是更大的问题。如果您从Varnish上返回管道,则不会看到管道事务的任何其他内容。 尝试返回pass并使用varnishlog检查404响应
i、 varnishlog-d-q“RespStatus>400”| grep“用户代理”答案很简单
unset-req.http.User-Agent
规范化用户代理使阅读更容易,但这完全是另一回事。我来试试。但是return(pass)只是不缓存,而是会规范化标头等,然后unset req.http.User-Agent就开始了——或者我错了?还有最简单的方法;)如果我在404监控中有用户aggent信息,那么重定向要比从varnishlogs中变灰容易得多。当然,如果varnishlog是唯一的选择,那么我必须使用它——或者只使用最重要的选项,就像人类得到404一样。在我第一天早上喝咖啡之后。。。我只是个好机器人,没有别的。
sub vcl_backend_response {
if (beresp.http.Vary ~ "User-Agent") {
set beresp.http.Vary = regsuball(beresp.http.Vary, ",? *User-Agent *", "");
set beresp.http.Vary = regsub(beresp.http.Vary, "^, *", "");
if (beresp.http.Vary == "") {
unset beresp.http.Vary;
}
}
}