да, примеры были из habr, но и там к статье были претензии к map-решению
+ я специально усложнил пример регулярными выражениями

поэтому указанный map это не эквивалент

во вторых плохо читаемый хак и издевательство над линейной логикой
зачем такие костыли, если можно доделать нормальный if?



> On 30 Sep 2020, at 05:14, fox <red-f...@ya.ru> wrote:
> 
> Троллишь?
> 
> map "$http_user_agent:$method:$uri" $block {
>    "HackYou:POST:/admin/some/url"  "1";
> }
> 
> if ($block) {
>    return 403;
> }
> 
> 
> 30.09.2020 02:24, Alexey Galygin пишет:
>> не вкусовщина
>> часто очень не хватает простейших and/&& и or/||
>> 
>> вот чтобы такое не писать:
>> 
>> if($http_user_agent~ "HackYou"){ set$block"A"; } if($method= "POST") {
>> set$block"${block}B"; } if($uri~ “^/admin/some/url") {
>> set$block"${block}C"; } if($block= "ABC") { return403; }
>> 
>> vs условно:
>> 
>> if/eif ($http_user_agent~ “HackYou” && $method= “POST” && $uri~
>> “^/admin/some/url”) {
>> return403;
>> }
>> 
>> 
>>> On 29 Sep 2020, at 21:49, Илья Шипицин <chipits...@gmail.com
>>> <mailto:chipits...@gmail.com <mailto:chipits...@gmail.com>>> wrote:
>>> 
>>> это вкусовщина же. вы готовы писать "eif", чтобы выразить свою мысль в
>>> определенном синтаксисе.
>>> сейчас вы точно так же выражаете свою мысль через map-ы.
>>> 
>>> по сути просто диалекты языка
>>> 
>>> вт, 29 сент. 2020 г. в 22:41, Alexey Galygin <m...@me.com 
>>> <mailto:m...@me.com>
>>> <mailto:m...@me.com <mailto:m...@me.com>>>:
>>> 
>>>    иногда трудно обойтись без дополнительной логики,
>>>    которую ради такой мелочи отдавать на backend грустно
>>> 
>>>    и речь про улучшение поведения исключительно с обратной совместимостью
>>> 
>>>    если совсем никак, то можно добавить условно extended if — eif
>>> 
>>> 
>>>> On 29 Sep 2020, at 19:47, fox <red-f...@ya.ru <mailto:red-f...@ya.ru>
>>>    <mailto:red-f...@ya.ru <mailto:red-f...@ya.ru>>> wrote:
>>>> 
>>>> 1) может, потому что конфиг - это не язык программирования?
>>>> 
>>>> 2) изменение поведения сломает тысячи существующих систем.
>>>> 
>>>> 
>>>> 29.09.2020 23:31, Alexey Galygin пишет:
>>>>> присоединяюсь к вопросу:
>>>>> 
>>>>> почему бы не сделать if нормальным? чтобы без артефактов… и
>>>    немного мощнее
>>>>> 
>>>>> нам вот тоже приходится делать по несколько map, чтобы логику
>>>    чуть более сложную построить…
>>>>> и это ужас
>>>>> 
>>>>>> On 29 Sep 2020, at 19:29, Sergey Kandaurov <pluk...@nginx.com 
>>>>>> <mailto:pluk...@nginx.com>
>>>    <mailto:pluk...@nginx.com <mailto:pluk...@nginx.com>>> wrote:
>>>>>> 
>>>>>> 
>>>>>>> On 29 Sep 2020, at 17:12, Ilya Evseev
>>>    <nginx-fo...@forum.nginx.org <mailto:nginx-fo...@forum.nginx.org> 
>>> <mailto:nginx-fo...@forum.nginx.org <mailto:nginx-fo...@forum.nginx.org>>>
>>>    wrote:
>>>>>>> 
>>>>>>> Имеется nginx 1.19.2 со следующей настройкой:
>>>>>>> 
>>>>>>>   server {
>>>>>>>       location / {
>>>>>>>           if ($http_user_agent ~ "TestAgent") { }
>>>>>>>           try_files $uri $uri/ /index.html;
>>>>>>>       }
>>>>>>>   }
>>>>>>> 
>>>>>>> Почему попадание в if меняет логику работы последующего
>>>    try_files?
>>>>>> 
>>>>>> https://wiki.nginx.org/IfIsEvil <https://wiki.nginx.org/IfIsEvil>
>>>>>> 
>>>>>> --
>>>>>> Sergey Kandaurov
>>>>>> 
>>>>>> _______________________________________________
>>>>>> nginx-ru mailing list
>>>>>> nginx-ru@nginx.org <mailto:nginx-ru@nginx.org> 
>>>>>> <mailto:nginx-ru@nginx.org <mailto:nginx-ru@nginx.org>>
>>>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru 
>>>>>> <http://mailman.nginx.org/mailman/listinfo/nginx-ru>
>>>>> 
>>>>> _______________________________________________
>>>>> nginx-ru mailing list
>>>>> nginx-ru@nginx.org <mailto:nginx-ru@nginx.org> <mailto:nginx-ru@nginx.org 
>>>>> <mailto:nginx-ru@nginx.org>>
>>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru 
>>>>> <http://mailman.nginx.org/mailman/listinfo/nginx-ru>
>>>>> 
>>>> 
>>>> _______________________________________________
>>>> nginx-ru mailing list
>>>> nginx-ru@nginx.org <mailto:nginx-ru@nginx.org> <mailto:nginx-ru@nginx.org 
>>>> <mailto:nginx-ru@nginx.org>>
>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru 
>>>> <http://mailman.nginx.org/mailman/listinfo/nginx-ru>
>>> 
>>>    _______________________________________________
>>>    nginx-ru mailing list
>>>    nginx-ru@nginx.org <mailto:nginx-ru@nginx.org> 
>>> <mailto:nginx-ru@nginx.org <mailto:nginx-ru@nginx.org>>
>>>    http://mailman.nginx.org/mailman/listinfo/nginx-ru 
>>> <http://mailman.nginx.org/mailman/listinfo/nginx-ru>
>>> 
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru@nginx.org <mailto:nginx-ru@nginx.org> <mailto:nginx-ru@nginx.org 
>>> <mailto:nginx-ru@nginx.org>>
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru 
>>> <http://mailman.nginx.org/mailman/listinfo/nginx-ru>
>> 
>> 
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru@nginx.org <mailto:nginx-ru@nginx.org>
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru 
>> <http://mailman.nginx.org/mailman/listinfo/nginx-ru>
>> 
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org <mailto:nginx-ru@nginx.org>
> http://mailman.nginx.org/mailman/listinfo/nginx-ru 
> <http://mailman.nginx.org/mailman/listinfo/nginx-ru>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить