Saltar a contenido

control-de-acceso: Control de acceso avanzado basado en variables

Instalación

Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:

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

Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:

load_module modules/ngx_http_access_control_module.so;

Este documento describe nginx-module-access-control v0.1.0 lanzado el 06 de enero de 2026.


Sinopsis

server {
    listen 80;
    server_name example.com;

    # Permitir acceso si $var2 no está vacío y no es cero. La solicitud permitida ya no coincidirá con las reglas de control de acceso restantes.
    access allow $var1;

    # Denegar acceso si $var1 no está vacío y no es cero
    access deny $var2;

    location / {
        # Tus otras configuraciones
    }

    location /restricted {
        # Sobrescribir el código de estado de denegación
        access_deny_status 404;

        # Denegar acceso si $var3 no está vacío y no es cero
        access deny $var3;
    }
}

Directivas

access

Sintaxis: access [allow|deny] variable;

Por defecto: -

Contexto: http, server, location

La directiva access define una regla de control de acceso basada en una variable. La variable se evalúa en tiempo de ejecución, y si no está vacía y no es cero, se considera que la regla coincide.

allow: Permite el acceso si se cumple la condición. La solicitud permitida ya no coincidirá con las reglas de control de acceso restantes.
deny: Niega el acceso si se cumple la condición.

access_rules_inherit

Sintaxis: access_rules_inherit off | before | after;

Por defecto: access_rules_inherit off;

Contexto: http, server, location

Determina si y cómo se aplican las reglas de control de acceso del nivel anterior en el contexto de configuración actual. Acepta tres valores:

off: no heredar ninguna regla de acceso del nivel anterior, a menos que no se defina ninguna directiva de acceso en el nivel actual.
before: aplicar las reglas de acceso del nivel anterior antes de las reglas de acceso del nivel actual.
after: aplicar las reglas de acceso del nivel anterior después de las reglas de acceso del nivel actual.

access_deny_status

Sintaxis: access_deny_status code;

Por defecto: access_deny_status 403;

Contexto: http, server, location

Establece el código de estado HTTP que se devolverá en respuesta cuando se niegue el acceso por una regla de denegación.

GitHub

Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-access-control.