Pular para conteúdo

access-control: Controle de acesso avançado baseado em variáveis

Instalação

Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:

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

Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:

load_module modules/ngx_http_access_control_module.so;

Este documento descreve o nginx-module-access-control v0.1.0 lançado em 06 de janeiro de 2026.


Sinopse

server {
    listen 80;
    server_name example.com;

    # Permitir acesso se $var2 não estiver vazio e não for zero. A solicitação permitida não corresponderá mais às regras de controle de acesso restantes.
    access allow $var1;

    # Negar acesso se $var1 não estiver vazio e não for zero
    access deny $var2;

    location / {
        # Suas outras configurações
    }

    location /restricted {
        # Substituir o código de status de negação
        access_deny_status 404;

        # Negar acesso se $var3 não estiver vazio e não for zero
        access deny $var3;
    }
}

Diretrizes

access

Sintaxe: access [allow|deny] variable;

Padrão: -

Contexto: http, server, location

A diretiva access define uma regra de controle de acesso baseada em uma variável. A variável é avaliada em tempo de execução e, se não estiver vazia e não for zero, a regra é considerada correspondida.

allow: Permite acesso se a condição for atendida. A solicitação permitida não corresponderá mais às regras de controle de acesso restantes.
deny: Nega acesso se a condição for atendida.

access_rules_inherit

Sintaxe: access_rules_inherit off | before | after;

Padrão: access_rules_inherit off;

Contexto: http, server, location

Determina se e como as regras de controle de acesso do nível anterior são aplicadas no contexto de configuração atual. Aceita três valores:

off: não herdar nenhuma regra de acesso do nível anterior, a menos que nenhuma diretiva de acesso esteja definida no nível atual.
before: aplicar regras de acesso do nível anterior antes das regras de acesso do nível atual.
after: aplicar regras de acesso do nível anterior após as regras de acesso do nível atual.

access_deny_status

Sintaxe: access_deny_status code;

Padrão: access_deny_status 403;

Contexto: http, server, location

Define o código de status HTTP a ser retornado em resposta quando o acesso é negado por uma regra de negação.

GitHub

Você pode encontrar dicas de configuração adicionais e documentação para este módulo no repositório do GitHub para nginx-module-access-control.