ПРОЕКТЫ 


  АРХИВ 


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]: логика работы д ирективы map



On Tue, 20 Dec 2005, Anton Ageev wrote:

Здравствуйте, Игорь.

Предположим в nginx.conf записано:

map $x $y {
   default 0;
   include bla-bla.map;
}

В виду того, что map прописывается в секции http, а переменную $x (в
случае если она не встроенная), можно инициализировать set-ом только
самое ранее в секции server, в лог лезут вот такие ошибки:

2005/12/20 03:45:30 [alert] 3129#0: *1339 using uninitialized "x"
variable while reading client request line, client: 82.227.92.102,
server: ***
2005/12/20 03:45:53 [alert] 3129#0: *1427 using uninitialized "x"
variable while closing request, client: 84.204.116.166, server: ***,
URL: "***", host: "***", referrer: "***"

IS> Как используется $y ? Я не могу понять, как переменная используется
IS> на стадии "reading client request line" и "closing request".

Переменная $y используется в двух местах:
1. в if-е в секции location
2. пишется в access-лог (директива access_log прописана в секции
http)

Понятно. На стадии логирования и есть "closing request".
А вот "reading client request line" пока непонятно.

Предлагаю сделать так, чтобы в случае, если map видит
неинициализированную переменную $x, то переменной $y автоматически
подставлялось default значение.

Я бы сделал так:
1) описал бы два формата - с переменной и без.
2) описал бы access_log с переменной в том сервере, где переменная
   используется.


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.