Re: Управление бэкендами

Валентин Бартенев vbart at nginx.com
Fri Nov 1 13:09:42 UTC 2013


On Friday 01 November 2013 17:02:43 Валентин Бартенев wrote:
> On Friday 01 November 2013 16:54:43 Sergey Kobzar wrote:
> [..]
> 
> > > Далее у вас есть internal location, в котором тот же
> > > proxy_pass/fastcgi_pass с переменной и запрос отправляется на нужный
> > > сервер.
> > 
> > А переменную как выковырять из ответа?
> 
> Например так: возвращаете "X-Accel-Redirect: /redirect_to/198.51.100.1"
> и он попадает в такой location:
> 
>   location ~ ^/redirect_to/(?<backend>.+)$ {
>       internal;
>       proxy_pass http://$backend;
>   }
> 
> Если нужно сохранить оригинальный URI запроса, то это делается с помощью
> set:
> 
>   set $original_uri $request_uri;
> 
> и proxy_pass в этом случает будет выглядеть так:
> 
>   proxy_pass http://$backend$original_uri;
> 

Альтернативный, и даже наверное лучший и более простой вариант всего этого: 
использовать аналогичным образом модуль ngx_http_auth_request.

http://nginx.org/ru/docs/http/ngx_http_auth_request_module.html

--
Валентин Бартенев


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