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 <and...@kopeyko.ru>

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

Ответить