access-control: Расширенный контроль доступа на основе переменных
Установка
Вы можете установить этот модуль в любой дистрибутив на базе RHEL, включая, но не ограничиваясь:
- RedHat Enterprise Linux 7, 8, 9 и 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-access-control
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-access-control
Включите модуль, добавив следующее в верхней части /etc/nginx/nginx.conf:
load_module modules/ngx_http_access_control_module.so;
Этот документ описывает nginx-module-access-control v0.1.0, выпущенный 6 января 2026 года.
Синопсис
server {
listen 80;
server_name example.com;
# Разрешить доступ, если $var2 не пустой и не равен нулю. Разрешенный запрос больше не будет соответствовать оставшимся правилам контроля доступа.
access allow $var1;
# Запретить доступ, если $var1 не пустой и не равен нулю
access deny $var2;
location / {
# Ваши другие настройки
}
location /restricted {
# Переопределить код статуса отказа
access_deny_status 404;
# Запретить доступ, если $var3 не пустой и не равен нулю
access deny $var3;
}
}
Директивы
access
Синтаксис: access [allow|deny] variable;
По умолчанию: -
Контекст: http, server, location
Директива access определяет правило контроля доступа на основе переменной. Переменная оценивается во время выполнения, и если она не пустая и не равна нулю, правило считается выполненным.
allow: Разрешает доступ, если условие выполнено. Разрешенный запрос больше не будет соответствовать оставшимся правилам контроля доступа. deny: Запрещает доступ, если условие выполнено.
access_rules_inherit
Синтаксис: access_rules_inherit off | before | after;
По умолчанию: access_rules_inherit off;
Контекст: http, server, location
Определяет, будут ли и как правила контроля доступа с предыдущего уровня применяться в текущем контексте конфигурации. Принимает три значения:
off: не наследовать никаких правил доступа с предыдущего уровня, если на текущем уровне не определена директива доступа. before: применять правила доступа предыдущего уровня перед правилами доступа текущего уровня. after: применять правила доступа предыдущего уровня после правил доступа текущего уровня.
access_deny_status
Синтаксис: access_deny_status code;
По умолчанию: access_deny_status 403;
Контекст: http, server, location
Устанавливает код статуса HTTP, который будет возвращен в ответ, когда доступ запрещен правилом deny.
GitHub
Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-access-control.