access

Директива `access` управляет доступом на основе условий переменных в конфигурациях NGINX.

Синтаксисaccess (allow|deny) variable;
По умолчаниюnone
Контекстhttp, server, location, limit_except
Аргументы2

Описание

Директива access в NGINX обеспечивает расширенный контроль доступа на основе указанных переменных. Она позволяет настраивать правила, которые либо разрешают, либо запрещают доступ к ресурсам в зависимости от оценки этих переменных во время выполнения. При использовании этой директивы вы можете указать либо 'allow', либо 'deny' с последующей переменной; если переменная не пуста и не равна нулю, соответствующее правило сработает. Как только запрос разрешен, он пропускает любые последующие правила доступа, что упрощает применение политики доступа.

Директиву можно использовать в разных контекстах: http, server, location и limit_except, что делает ее универсальной для различных областей конфигурации. Кроме того, поведение можно дополнительно контролировать директивой access_rules_inherit, которая определяет, как правила доступа из более высоких контекстов должны применяться, когда директива определена во вложенных локациях.

По умолчанию для директивы access не задано значения по умолчанию, поэтому она должна быть явно определена в каждом случае, где требуется контроль доступа. В сочетании с директивой access_deny_status администраторы также могут настраивать код состояния ответа при отказе в доступе, что обеспечивает более точный контроль над ответами сервера на неавторизованные запросы.

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

server {
    listen 80;
    server_name example.com;

    # Allow access if $var1 is non-empty and not zero
    access allow $var1;

    # Deny access if $var2 is non-empty and not zero
    access deny $var2;

    location / {
        # Your other configurations
    }

    location /restricted {
        # Override deny status code
        access_deny_status 404;

        # Deny access if $var3 is non-empty and not zero
        access deny $var3;
    }
}

Использование директивы без определения соответствующих переменных приведёт к непредвиденному поведению или к неправильному предоставлению прав.

Сложность увеличивается, если несколько правил access определены во вложенных конфигурациях; убедитесь в ясности порядка применения правил.

Необходимо учитывать порядок выполнения правил доступа и их влияние на производительность. Слишком сложная логика при оценке условий может ухудшать время отклика.

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