Модуль ngx_http_internal_redirect_module
Модуль ngx_http_internal_redirect_module (1.23.4) позволяет выполнять внутренний перенаправление. В отличие от переписывания URI, перенаправление выполняется после проверки ограничений на обработку запроса и соединения, а также ограничений доступа access.
Этот модуль доступен в рамках нашей коммерческой подписки.
Пример конфигурации
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. Значение uri может содержать переменные. Если значение uri пустое, то перенаправление не будет выполнено.
© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/http/ngx_http_internal_redirect_module.html