模块 ngx_http_internal_redirect_module

Example Configuration
Directives
     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;
默认:
语境: server,location

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