nginx: использование модуля geo с директивами allow/deny

nginx: использование модуля geo с директивами allow/deny

Чтение nginx'sngx_http_access_moduleдокументации я наткнулся на это:

В случае большого количества правил использованиеngx_http_geo_moduleПредпочтительнее использовать модульные переменные.

Как использовать allow/deny с модулем geo? Если я сделаю это:

geo $listofips {
    default 0;
    8.8.8.8 1;
}

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

У меня возникает следующая ошибка:

неверный параметр "$listofips" в /path/to/config:97

Как использовать модуль geo для контроля доступа? Я не могу использовать ifs, потому что он, очевидно, ломается try_files(см. IfIsEvil в nginx).

решение1

Я уверен, что на момент написания этого ответа без использования IF это было бы невозможно.

В этом случае это будет выглядеть так:

geo $trusted_user {
    default 0;
    8.8.8.8 1;
}

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

Отправьте предложение команде NGINX в: https://www.nginx.com/

На этот вопрос был дан ответ на основе этого ответа:NGINX — условное разрешение или запрет IP

Поиск источника"# try_files не будет работать из-за if"в"Примеры": https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/#examples

Связанный контент