Re: Почему пустой if ломает работу try files?

Alexey Galygin mif на me.com
Вт Сен 29 19:24:13 UTC 2020


не вкусовщина
часто очень не хватает простейших 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") {
    return 403;
}

vs условно:

if/eif ($http_user_agent ~ “HackYou” && $method = “POST” && $uri ~ “^/admin/some/url”) {
	return 403;
}


> On 29 Sep 2020, at 21:49, Илья Шипицин <chipitsine на gmail.com> wrote:
> 
> это вкусовщина же. вы готовы писать "eif", чтобы выразить свою мысль в определенном синтаксисе.
> сейчас вы точно так же выражаете свою мысль через map-ы.
> 
> по сути просто диалекты языка
> 
> вт, 29 сент. 2020 г. в 22:41, Alexey Galygin <mif на me.com <mailto:mif на me.com>>:
> иногда трудно обойтись без дополнительной логики,
> которую ради такой мелочи отдавать на backend грустно
> 
> и речь про улучшение поведения исключительно с обратной совместимостью
> 
> если совсем никак, то можно добавить условно extended if — eif
> 
> 
> > On 29 Sep 2020, at 19:47, fox <red-fox0 на ya.ru <mailto:red-fox0 на ya.ru>> wrote:
> > 
> > 1) может, потому что конфиг - это не язык программирования?
> > 
> > 2) изменение поведения сломает тысячи существующих систем.
> > 
> > 
> > 29.09.2020 23:31, Alexey Galygin пишет:
> >> присоединяюсь к вопросу:
> >> 
> >> почему бы не сделать if нормальным? чтобы без артефактов… и немного мощнее
> >> 
> >> нам вот тоже приходится делать по несколько map, чтобы логику чуть более сложную построить…
> >> и это ужас
> >> 
> >>> On 29 Sep 2020, at 19:29, Sergey Kandaurov <pluknet на nginx.com <mailto:pluknet на nginx.com>> wrote:
> >>> 
> >>> 
> >>>> On 29 Sep 2020, at 17:12, Ilya Evseev <nginx-forum на forum.nginx.org <mailto:nginx-forum на 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>
> >>> 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 <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

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20200929/bc4f2ffe/attachment-0001.htm>


Подробная информация о списке рассылки nginx-ru