模块 ngx_http_internal_redirect_module

示例配置
指令
     internal_redirect

ngx_http_internal_redirect_module 模块 (1.23.4) 允许进行内部重定向。与 重写 URI 不同,重定向是在检查 请求连接 处理限制以及 访问 限制之后进行的。

此模块作为我们 商业订阅 的一部分提供。

示例配置

limit_req_zone $jwt_claim_sub zone=jwt_sub:10m rate=1r/s;

server {
    location / {
        auth_jwt          "realm";
        auth_jwt_key_file key.jwk;

        internal_redirect @rate_limited;
    }

    location @rate_limited {
        internal;

        limit_req  zone=jwt_sub burst=10;
        proxy_pass http://backend;
    }
}

此示例实现了 基于用户速率限制。在没有使用 internal_redirect 的情况下,由于通常 limit_req 检查是在 auth_jwt 检查 之前 执行的,因此容易受到未签名的 JWT 导致的 DoS 攻击。使用 internal_redirect 可以重新排序这些检查。

指令

语法 internal_redirect uri;
默认值
上下文 serverlocation

设置请求内部重定向的 URI。也可以使用 命名位置 而不是 URI。uri 值可以包含变量。如果 uri 值为空,则不会进行重定向。