Re: вызов map variable дважды
Andrey Kopeyko
andrey at kopeyko.ru
Thu Aug 15 08:55:10 UTC 2013
15.08.2013 11:18, lekrus пишет:
> Здравствуйте,
>
> У меня используется переменная
> map $v_host $backend {
> default 1;
> test 2;
> test2 3;
> }
>
> Далее идет
>
> location / {
> set $v_host test;
> proxy_pass $backend #(тут переменная $backend правильно определяется, равна
> 2)
> }
>
> в процессе, upstream возвращает X-Accel-Redirect который вызывает другой
> location /int {
> internal;
> set $v_host test2;
> rewrite (.*) $backend
> }
>
> и при таком вызове $backend остается равен 2, должен быть 3.
>
> Я правильно понимаю, что в процессе одного вызова, если переменная map хоть
> раз была вычислена, далее все остальные вызовы используют это значение,
> независимо от того, меняется ли переменная, по которой определяется
> значение?
>
> Есть ли возможность как-то заставить перевычислить это значение?
Я бы посоветовал пользовать две мапы вместо одной.
Что содержимое у них будет одинаковое - так генератору конфига это без
разницы.
--
Best regards,
Andrey Kopeyko <andrey at kopeyko.ru>
Подробная информация о списке рассылки nginx-ru