bot_verifier
bot_verifier 指令启用或禁用 NGINX 的机器人验证模块,允许或阻止声称为搜索引擎机器人的请求的访问。
A search index bot verification module for NGINX
·
httpserverlocation
语法bot_verifier on | off;
默认值off
上下文http, server, location
参数1
说明
bot_verifier 指令是 NGINX 模块的一部分,旨在通过验证声称为搜索引擎索引机器人的传入请求是否合法来增强服务器安全性。这一点很重要,因为 User-Agent 头可以轻易被伪造,因此不能单靠它来判断请求的真实性。当该指令设置为 'on' 时,模块会启动验证流程,通常会将请求与存储在 Redis 数据库中的已验证机器人缓存记录进行核对。如果 Redis 连接未建立或失败,模块将通过返回 NGX_DECLINED 来放弃验证流程,允许请求在不经过验证的情况下继续。\n\n验证过程包括确定请求的来源地址、将其与缓存中的验证状态进行比对,并在必要时进行更深入的验证。系统还可以将新的验证结果存入缓存以便后续请求使用。如果请求被判定为合法,服务器将允许其继续;相反,如果验证失败,请求将被阻止并返回 HTTP_FORBIDDEN 响应。该机制通过缓存先前检查的结果来减少持续实时验证带来的性能开销,从而优化对合法请求的响应时间。
配置示例
location / {
bot_verifier on;
bot_verifier_redis_host localhost;
bot_verifier_redis_port 6379;
bot_verifier_redis_connection_timeout 10;
bot_verifier_redis_read_timeout 10;
bot_verifier_redis_expiry 3600;
bot_verifier_repsheet_enabled on;
}⚠
确保 Redis 已正确设置并可访问;否则验证会失败,且可能在未检查的情况下允许请求。
⚠
请记得在适当的上下文中启用 bot_verifier 指令以使其生效 (http, server, location)。
⚠
如果 Redis 运行缓慢或无响应,错误配置的超时可能导致请求被阻塞。