Перейти к содержанию

access-control: Расширенный контроль доступа на основе переменных

Установка на Debian/Ubuntu

Эти документы относятся к APT пакету nginx-module-access-control, предоставляемому репозиторием GetPageSpeed Extras.

  1. Настройте APT репозиторий, как описано в настройке APT репозитория.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-access-control
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия            | Компонент   | Архитектуры     |
|-------------|-------------------|-------------|-----------------|
| debian      | bookworm          | main        | amd64, arm64    |
| debian      | bookworm-mainline | main        | amd64, arm64    |
| debian      | trixie            | main        | amd64, arm64    |
| debian      | trixie-mainline   | main        | amd64, arm64    |
| ubuntu      | focal             | main        | amd64, arm64    |
| ubuntu      | focal-mainline    | main        | amd64, arm64    |
| ubuntu      | jammy             | main        | amd64, arm64    |
| ubuntu      | jammy-mainline    | main        | amd64, arm64    |
| ubuntu      | noble             | main        | amd64, arm64    |
| ubuntu      | noble-mainline    | main        | amd64, arm64    |

Название

Пользовательский модуль Nginx для расширенного контроля доступа на основе переменных.

Содержание

Статус

Этот модуль Nginx в настоящее время считается экспериментальным. Проблемы и запросы на изменение (PR) приветствуются, если вы столкнетесь с какими-либо проблемами.

Синопсис

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, который будет возвращен в ответе, когда доступ запрещен правилом отказа.