模块 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的实现容易受到未签名 JWT 的 DoS 攻击,因为通常在limit_req检查之前执行auth_jwt检查。使用internal_redirect可以重新排序这些检查。

指令

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

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