ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: умное проксировани е



Hello!

On Fri, May 15, 2009 at 11:02:03AM +0400, Илья Винокуров wrote:

> 
> 
> -----Original Message-----
> From: Maxim Dounin <mdounin@xxxxxxxxxx>
> > On Thu, May 14, 2009 at 07:24:04PM +0400, Борис Долгов wrote:
> > 
> > > Добрый день, nginx-ru!
> > > Хотелось бы задать вопрос.
> > > Предположим, у нас есть некоторый fastcgi-бекенд. Он возвращает
> > > X-Accel-Redirect на location, настроенный на проксирование и 
> > > X-Send-Cookie,
> > > который надо при проксировании отдать второму бекенду. Будет ли nginx
> > > отдавать куку второму бекенду, если прописать в конфиг "proxy_set_header
> > > Cookie $http_x_send_cookie;"?
> > 
> > Нет.
> > 
> > Заголовки, приходящие от upstream'а, доступны как 
> > $upstream_http_*.  Однако как только начинается работа следующего 
> > upstream'а - они чистятся.  Поэтому значение нужно предварительно 
> > сохранить в другую переменную через rewrite, как-то так:
> > 
> >     location /first {
> >         # здесь возвращают X-Accel-Redirect и X-Send-Cookie
> >         fastcgi_pass ...
> >     }
> > 
> >     location /second {
> >         set $t $upstream_http_x_send_cookie;
> >         proxy_set_header Cookie $t;
> >         proxy_pass ...
> >     }
> 
> Если в SSI дано:
> <!--# include virtual="/first" -->
> <!--# include virtual="/second" -->
> То не забываем ставить wait="yes" для /first ?

Нет.  Приведённый кусок SSI не имеет смысла при использоавнии 
вышеуказанного конфига.

> И вопрос-приблуда - как вытащить переменную $upstream_response_time в SSI ?
> А то я уже совсем отчаялся вывести время генерации SSI страницы в футер сайта 
> - инклюды-то параллельно качаются... 

Никак.  Только писать в лог (при необходимости - включив 
логгирование подзапросов).

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.