nginx: Use o módulo geográfico com as diretivas allow / deny

2

Ao ler a documentação do ngx_http_access_module do nginx, deparei-me com isto:

In case of a lot of rules, the use of the ngx_http_geo_module module variables is preferable.

Como posso usar permissão / negação 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:

invalid parameter "$listofips" in /path/to/config:97

Como posso usar o módulo geográfico para controle de acesso? Eu não posso usar ifs, porque evidentemente quebra try_files (veja IfIsEvil do nginx).

    
por Ivan 01.05.2015 / 20:58

1 resposta

2

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

Então, nesse 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 o time NGINX em: link

Esta questão foi respondida com base nesta resposta: NGINX - condicionalmente permitir ou negar IP

Fonte de pesquisa "# try_files não funcionará devido a if" em "Exemplos" : link

    
por 27.10.2016 / 14:09

Tags