Модуль 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 может быть подвержена DoS-атакам при помощи неподписанных JWT, так как проверка limit_req выполняется перед проверкой auth_jwt. Использование internal_redirect позволяет изменить порядок этих проверок.

Директивы

Синтаксис: internal_redirect uri;
Умолчание:
Контекст: server, location

Задаёт URI для внутреннего перенаправления запроса. Вместо URI также можно использовать именованный location. В значении uri можно использовать переменные. Если значение uri пустое, то перенаправление не осуществляется.