Varnish:如何将用户代理作为信息发送到wordpress以进行404监控

我正试图找出所有仅进行关键字收集和(对我而言)无用的SEO销售的机器人,例如MJ12bot或AhrefsBot。我的网站大约有24年的历史,大部分时间是在Wordpress下使用的,但是我在某些时候尝试了mediawiki等,所以我会得到很多404。

我有Apache-Varnish-Wordpress堆栈,并且我正在使用Varnish阻止不需要的机器人。 bot.vlc是这样的:

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插件完成的。我正在使用return(pipe);只是获得用户代理的“好机器人”。否则我不知道何时应该修复404,何时不关心。人类不是问题,因为如果他们得到404,那么就会有一个引荐来源。因此,我想找出可以为他们提供错误403的漫游器用户代理。

我在Google上搜索了很多,所有的清漆和用户代理都输入了如何为手机提供不同的缓存或提示为什么变化的原因:用户代理不利于缓存比率。一些文章建议使用Apache2的日志,但是由于未设置req.http.User-Agent,它并没有太大帮助。在default.vcl中。我知道所有这些信息,但我只是尝试将用户代理的名称传递给404监视,而不必告诉它清漆。

也许我应该使用Varnish进行日志记录,但是我也无法从那里找到用户代理。

那么,我应该只学习使用大量404脚本还是将所有这些“不良机器人列表”复制并粘贴?我可以使用Varnish来寻找完全提供404的机器人名称吗?

编辑:这里有语言障碍(如果您要学一些芬兰语,这会容易得多;)),所以让我们看一下屏幕截图。

这是我得到的: when Varnish cleans up user agent

这是我需要的,但是每个用户代理没有单独的“缓存桶”: showing user agents

(编辑和)关闭(现在仍然如此)

如果不使用return(pipe),则不可能将用户代理发送到Wordpress等后端应用程序;女巫对于Varnish来说是个坏主意。

使用return(pass);也不起作用,因为它只是不使用缓存,而是会执行其他操作,例如删除variable:user-agent-无论如何,即使可行,将用户代理发送到404监视器也是个坏主意。

实际上有点令人沮丧。无用的bot产生的404不需要任何修复,但是googlebot / bingbot / etc需要,而现在我不知道谁是谁。所以我做了一个bad-bot.vcl来阻止已知的不良/搜索引擎收成,并让Google / bing / etc使用return(pipe)通过Varnish,这样我就可以将他们的用户代理添加到404监视器。由于加载时间稍慢,我现在可能(也可能不会)放弃一些SEO,但这并不是更大的问题。

ysw9232 回答:Varnish:如何将用户代理作为信息发送到wordpress以进行404监控

如果您从那时起在Varnish上返回管道,将看不到管道事务的其他内容。 尝试返回通行证,并使用varnishlog检查404响应。

即varnishlog -d -q“ RespStatus> 400” | grep“用户代理”

,

答案很简单。

  1. 是否在 Varnish 中标准化,但不要unset req.http.User-Agent
  2. 使用这个:
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;
        }
    }
}

现在 Varnish 不会使用 User-Agent 缓存(按年龄和缓存命中),后端,这里是 WordPress,获取 User-Agent。现在更容易看出 404 是否来自真实用户/机器人。

规范化用户代理使阅读更容易,但这是完全不同的故事。

本文链接:https://www.f2er.com/3018003.html

大家都在问