Aller au contenu

access-control: Contrôle d'accès avancé basé sur des variables

Installation

Vous pouvez installer ce module dans toute distribution basée sur RHEL, y compris, mais sans s'y limiter :

  • RedHat Enterprise Linux 7, 8, 9 et 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 et 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

Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :

load_module modules/ngx_http_access_control_module.so;

Ce document décrit nginx-module-access-control v0.1.0 publié le 6 janvier 2026.


Synopsis

server {
    listen 80;
    server_name example.com;

    # Autoriser l'accès si $var2 n'est pas vide et n'est pas zéro. La requête autorisée ne correspondra plus aux règles de contrôle d'accès restantes.
    access allow $var1;

    # Refuser l'accès si $var1 n'est pas vide et n'est pas zéro
    access deny $var2;

    location / {
        # Vos autres configurations
    }

    location /restricted {
        # Remplacer le code d'état de refus
        access_deny_status 404;

        # Refuser l'accès si $var3 n'est pas vide et n'est pas zéro
        access deny $var3;
    }
}

Directives

access

Syntaxe : access [allow|deny] variable;

Par défaut : -

Contexte : http, server, location

La directive access définit une règle de contrôle d'accès basée sur une variable. La variable est évaluée à l'exécution, et si elle n'est pas vide et n'est pas zéro, la règle est considérée comme correspondante.

allow : Autorise l'accès si la condition est remplie. La requête autorisée ne correspondra plus aux règles de contrôle d'accès restantes.
deny : Refuse l'accès si la condition est remplie.

access_rules_inherit

Syntaxe : access_rules_inherit off | before | after;

Par défaut : access_rules_inherit off;

Contexte : http, server, location

Détermine si et comment les règles de contrôle d'accès du niveau précédent sont appliquées dans le contexte de configuration actuel. Elle accepte trois valeurs :

off : ne pas hériter de règles d'accès du niveau précédent, sauf si aucune directive d'accès n'est définie au niveau actuel.
before : appliquer les règles d'accès du niveau précédent avant les règles d'accès du niveau actuel.
after : appliquer les règles d'accès du niveau précédent après les règles d'accès du niveau actuel.

access_deny_status

Syntaxe : access_deny_status code;

Par défaut : access_deny_status 403;

Contexte : http, server, location

Définit le code d'état HTTP à retourner en réponse lorsque l'accès est refusé par une règle de refus.

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-access-control.