access
Директива `access` управляет доступом на основе условий переменных в конфигурациях NGINX.
Описание
Директива 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 определены во вложенных конфигурациях; убедитесь в ясности порядка применения правил.
Необходимо учитывать порядок выполнения правил доступа и их влияние на производительность. Слишком сложная логика при оценке условий может ухудшать время отклика.