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

Igor Sysoev is at rambler-co.ru
Tue Dec 20 14:33:38 MSK 2005


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: "***"

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

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

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


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





More information about the nginx-ru mailing list