testcookie_max_attempts

testcookie_max_attempts 指令限制设置挑战 cookie 时的重定向尝试次数。

语法testcookie_max_attempts number;
默认值none
上下文http, server, location
参数1

说明

testcookie_max_attempts 指令是 NGINX testcookie 模块的一部分,该模块通过基于 cookie 的挑战机制来缓解自动机器人流量。该指令专门控制在服务器尝试在客户端设置挑战 cookie 时将发生的最大 HTTP 重定向次数。根据实现,如果重定向次数达到该上限,用户会被重定向到定义的回退 URL。为合规起见,该限制不应超过五次重定向,正如 RFC 1945(规定了 HTTP/1.0 规范)所述。

testcookie_max_attempts 被设置为 0 或根本未定义时,服务器将无限期尝试设置该 cookie,直到浏览器在多次尝试后遇到失败(这通常可能导致客户端错误页面)。如果未正确管理,这可能导致糟糕的用户体验。因此,建议管理员为该指令设置合适的值,以避免不必要的重定向循环,同时仍能有效验证合法用户。

testcookie_arg 配合使用时,该指令还可以与基于特定条件的动态生成 URL 协同工作,进一步增强模块在流量过滤和 cookie 管理方面的稳健性。

配置示例

http {
    server {
        location / {
            testcookie_max_attempts 3;
            testcookie_arg arg_name;
            testcookie_fallback /fallback;
        }
    }
}

testcookie_max_attempts 设置为超过 5 可能导致设计不一致或违反 HTTP 标准。

如果未谨慎配置,较高的重定向值可能导致用户陷入循环,除非提供了回退方案。

请确保与 testcookie_arg 配对以获得最佳功能;否则可能发生过多的重定向。

← 返回所有指令