access_deny_status

Директива access_deny_status задаёт HTTP-код состояния, возвращаемый при отказе в доступе по правилам контроля доступа.

Синтаксисaccess_deny_status code;
По умолчанию403
Контекстhttp, server, location
Аргументы1

Описание

Директива access_deny_status используется в модуле расширенного контроля доступа NGINX для указания конкретного HTTP-кода состояния, который должен возвращаться при срабатывании правила deny. По умолчанию этот код установлен в 403, что означает, что сервер понимает запрос, но отказывается его авторизовать. Тем не менее, эта директива позволяет администраторам настраивать код ответа, давая гибкость в конфигурировании подходящих ответов в зависимости от логики приложения или требований.

Для использования директивы access_deny_status её можно разместить в контекстах http, server или location. Это означает, что она может задавать статус ответа на глобальном уровне, для конкретного server-блока или даже более узко — внутри location-блока. Когда срабатывает правило deny, NGINX проверяет настроенный код отказа и возвращает его клиенту вместо значения по умолчанию 403, что позволяет более точно сообщить о причине (например, использовать 404 для «не найдено» или 401 для неавторизованного доступа).

Важно помнить, что если применяются несколько правил контроля доступа, то сработает первое совпавшее правило deny и вернёт ответ с настроенным кодом состояния. Такое поведение подчёркивает необходимость тщательной структуры правил для достижения ожидаемого порядка обработки.

Пример конфига

server {
    listen 80;
    server_name example.com;

    location /restricted {
        access_deny_status 404;
        access deny $var1;
    }
}

Убедитесь, что access_deny_status размещён в соответствующем контексте (http, server, location); в противном случае он может не иметь эффекта.

Изменение кода состояния может повлиять на обработку ответов на стороне клиента, поэтому тщательно тестируйте, чтобы обеспечить корректное поведение.

Будьте внимательны с конфликтующими правилами доступа, которые могут привести к неожиданным результатам или к переопределению ответов.

← Ко всем директивам