
Чтение 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