Re: Переопределить upstream

Maxim Dounin mdounin at mdounin.ru
Tue Nov 27 11:57:19 UTC 2012


Hello!

On Tue, Nov 27, 2012 at 03:31:53PM +0400, Валентин Бартенев wrote:

> On Tuesday 27 November 2012 14:59:09 Daniel Podolsky wrote:
> > > Можно ли как-нибудь переопределить upstream указанный в конфиге?
> > 
> > Описать несколько апстримов, и соответствующих им именованных
> > location. выбирать нужный location через if return
> 
> Не нужно так делать. Все директивы *_pass понимают переменные.
> 
> http://nginx.org/r/proxy_pass/ru

Я бы не стал однозначно утверждать, какой из вариантов лучше.

Потому что переменные в proxy_pass - это не только ценный мех, но 
и заметно другой codepath, который ещё недавно был совсем другим, 
вплоть до того, что URL нужно было всегда задавать полностью.  Да 
и сейчас конструкция

    location /foo/ {
        proxy_pass http://backend/bar/;
    }

не заменяется на первый взгляд аналогичной конструкцией

    location /foo/ {
        set $backend "backend";
        proxy_pass http://$backend/bar/;
    }

YMMV.

-- 
Maxim Dounin
http://nginx.com/support.html



Подробная информация о списке рассылки nginx-ru