nginx-ru Digest, Vol 59, Issue 13
Oleksandr V. Typlyns'kyi
wangsamp at gmail.com
Sun Sep 21 09:34:32 UTC 2014
Today Sep 21, 2014 at 09:18 Sergey Kagansky wrote:
> Как я понимаю, geo может быть использован только в контексте http
> В моём случае есть сотни виртуальных хостов у каждого свой список
> разрешённых IP и юзер-агентов.
И чему это мешает? Более внимательному прочтению документации?
"Поскольку переменные вычисляются только в момент использования, само по
себе наличие даже большого числа объявлений переменных "geo" не влечёт за
собой никаких дополнительных расходов на обработку запросов."
С map аналогично.
> Есть ли решение для такого случая?
Генератор конфига.
http://nginx.org/r/perl_set/ru
http://nginx.org/r/auth_request/ru
http://wiki.nginx.org/HttpLuaModule#access_by_lua
> >>> Задавать значение переменной через geo(http://nginx.org/r/geo/ru) и
> >>> потом использовать её в map(http://nginx.org/r/map/ru) по
> >>> $http_user_agent:
> >>>
> >>> geo $listips {
> >>> default 1;
> >>> 127.0.0.1 0;
> >>> 192.168.1.0/24 0;
> >>> ...
> >>> }
> >>>
> >>> map $http_user_agent $nottrusted {
> >>> default $listips;
> >>> "~Opera Mini" 0;
> >>> ...
> >>> }
> >>>
> >>> location /test {
> >>> if ($nottrusted) {return 403;}
> >>> proxy_pass http://127.0.0.1;
> >>> }
--
WNGS-RIPE
Подробная информация о списке рассылки nginx-ru