ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: set на уровне http


  • To: Валентин Бартенев <nginx-ru@xxxxxxxxx>
  • Subject: Re[2]: set на уровне http
  • From: Михаил Монашёв <postmaster@xxxxxxxxxxxxx>
  • Date: Sat, 10 Aug 2013 23:43:31 +0400
  • Dkim-signature: v=1; a=rsa-sha1; c=relaxed; d=softsearch.ru; h=date:from :reply-to:message-id:to:subject:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=main; i= postmaster@xxxxxxxxxxxxx; bh=Tqcsja4PTVIZN3LRRdqGhtPWOk0=; b=m68 YuMuqNz61ljqoXMi9U7qnu5YEqKYTW3kGDJr0tlrkNZ4gtwtqVaxdRIs9+9SJqfF 85XXIWLpuv0wM6tTaf60DMeMSQP/Uyy2CvZuZuaWN+v4sTfoOzw7oE5aajddJ2xp SaTbhr7a0pA7QIO367lv46ufaCCJctWPHSbqjBK8=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=softsearch.ru; h=date:from :reply-to:message-id:to:subject:in-reply-to:references :mime-version:content-type:content-transfer-encoding; q=dns; s= main; b=nkN/CnsO2vHgSvXOkRrn8tN2HYaruO2pcvy3mMGqgU4ZNdBZMH2+ryTw 3z6nj2hIHj7T9cTUXTzik09iGE6hU0zUVQipfoP9vqh9unefQonWpkZ70+QhpN1D 1SxrvoacSyiMu05c6SLQhaDkJWO3yCOuXCQAFrXkL3xuH1oGvz0=
  • In-reply-to: <201308101301.48106.vbart@nginx.com>
  • References: <614301687.20130810113206@softsearch.ru> <201308101301.48106.vbart@nginx.com>

Здравствуйте, Валентин.

>> set на уровне http был бы очень удобен порой. Обходить это через
>>         map 1  $var {
>>                 default "value";
>>         }
>> неудобно.

> http://nginx.org/en/docs/faq/variables_in_config.html

Признаюсь,  что  не  въехал  в  ответ по ссылке. Все слова знакомые, а
собранные  вместе  смысл  никакой в моей голове не приобретают. Тупею,
видимо. :-)

Опишу  задачу. Мне надо было как-то писать в аксес-лог кэш-зону, чтобы
потом  по  логам  считать  эффективность  каждой  кэш-зоны. Встроенную
переменную я не знаю, поэтому решил создать переменную через set. Там,
где  запросы  проксируются,  я  присваивал  через  set соответствующей
переменной   значение,   равное  имени  кэшзоны.  Но  не  все  запросы
проксируются  и  в  логе  вместо  значения  переменной  пишется пустая
строка,  что  неудобно  для  парсинга лога. Брать переменную в кавычки
тоже неудобно.

Для  таких  запросов  я  хотел  присвоить  этой  переменной  дефолтное
значение  "-". Писать в каждом блоке server{} set или include посчитал
лишним и вставил в http{} вот такие строчки:

        # set нельзя делать на уровне http, поэтому делаем присваивание через 
map
        map 1  $cache_zone_for_logging {
                default "-";
        }

Т.е. я хотел использовать set для инициализации переменной, которая
потом может меняться.

На  мой  примитивный  взгляд  кажется нелогичным иметь иерархию блоков
конфига, иметь наследование с вышестоящих уровней иерархии и разрешать
set-у работать на уровне http{}.

-- 
С уважением,
 Михаил                          mailto:postmaster@xxxxxxxxxxxxx

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.