логика работы директивы map

Anton Ageev antage at inbox.ru
Tue Dec 20 15:48:47 MSK 2005


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

>> Предположим в 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)

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

IS> В случае, если переменная создаётся с помощью set, нельзя определить,
IS> что переменная потом используется в map. Надо подумать.

-- 
С наилучшими пожеланиями,
 Антон                          mailto:antage at inbox.ru






More information about the nginx-ru mailing list