nginx: Use o módulo geo com diretivas de permissão/negação

nginx: Use o módulo geo com diretivas de permissão/negação

Lendo nginxngx_http_access_moduleda documentação, me deparei com isso:

No caso de muitas regras, o uso dongx_http_geo_modulevariáveis ​​de módulo são preferíveis.

Como posso usar permitir/negar com o módulo geográfico? Se eu fizer isso:

geo $listofips {
    default 0;
    8.8.8.8 1;
}

server {
    # [...]
    allow $listofips;
    deny all;
}

Isso me dá o seguinte erro:

parâmetro inválido "$listofips" em /path/to/config:97

Como posso usar o módulo geo para controle de acesso? Não posso usar ifs, porque evidentemente quebra try_files(veja IfIsEvil do nginx).

Responder1

Sem o uso de IF, tenho certeza de que isso não seria possível no momento em que esta resposta foi escrita.

Então neste caso ficaria assim:

geo $trusted_user {
    default 0;
    8.8.8.8 1;
}

server
{
    if ( $trusted_user = 0 ) {
        return 403;
    }
}

Envie uma sugestão para a equipe NGINX em: https://www.nginx.com/

Esta pergunta foi respondida com base nesta resposta:NGINX - permitir ou negar IP condicionalmente

Fonte de pesquisa"# try_files não funcionará devido a if"em"Exemplos": https://www.nginx.com/resources/wiki/start/topics/profundidade/ifisevil/#examples

informação relacionada