ПРОЕКТЫ 


  АРХИВ 


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: ssi subrequest variables



Примерно так я это и понял вспоминая фразу про параллельно выполняемый подзапросы :)
Игорь, сделай пожалуйста, как выяснилось это временами очень важный момент ...


On 4/29/06, Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
On Fri, 28 Apr 2006, proforg wrote:

> да, это работает пока location "простой"
> но если location где делается set var отдается по fcgi или proxy_pass
> то значения переменных в основном запросе оказываются неопределены :(

Да, есть такая проблема. Дело в том, что в случае позапросом к fastcgi
или proxy_pass nginx инициирует соединение и продолжает выполнять SSI,
то есть, все подзапросы к внешним серверам работают параллельно.

Нужно будет сделать параметр wait:
<!--# include virtual="/mmc_var" wait="yes"-->

On 4/4/06, Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
>
> On Tue, 4 Apr 2006, proforg wrote:
>
> > On 4/4/06, Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
> >
> > On Tue, 4 Apr 2006, proforg wrote:
> >
> > > Снова про наследование ssi переменных из подзапросов :)
> > > Ты помнится говорил что это не очень сложно сделать, может быть
> > получится
> > > включить это в следующщую версию nginx ?
> >
> > Какое именно наследование имеется ввиду ?
> > Наследование в основной ssi из подзапроса ? Это должно работать.
>
> > да,  именно о нём.  вот  кусок из переписки где это обсуждалось (17
> > февраля):
>
> Видимо, мы тогда не поняли друг друга. Вот такие два файла:
>
> <!--# include virtual="/ssi_inc2.html" -->value is <!--# echo var="NAME"
> -->
>
> /ssi_inc2.html:
> <!--# set var="NAME" value="TEXT" -->
>
> у меня выдают
> value is TEXT
>
>
> Игорь Сысоев
> http://sysoev.ru
>
> >> В SSI можно попробовать примерно так:
> >>
> >> <!--# include virtual="/mmc_var" -->value is "<!--# echo var="NAME"
> -->"
> >>
> >> /mmc_var возвращает что-то вроде
> >>
> >> <!--# set var="NAME" value="TEXT" -->
> >>
> >> Ответ в результате выглядит так:
> >>
> >> value is "TEXT"
> >
> > К сожалению, не получается.
> > Если на локейшн /mmc_var поставить ssi on - то тогда <!--# set
> > var="NAME" value="TEXT" --> выполняется, но на уровень скрипта который
> > вызвал /mmc_var значение var не передается, т.к установлено внутри
> > подзапроса.
> > если же убрать ssi on, то <!--# set var="NAME" value="TEXT" --> просто
> > выводится в основном скрипте - ssi фильтр делает один проход по тексту
> > и обработать это уже не может ...
> >
> > Игорь, а можно как нить простым способом заставить ssi применяться
> дважды
> ?
> > Для таких случаев. Это я думаю всё равно будет быстрее чем куча
> подзапросов ...
>
> Сейчас - нет. Переменные создаваемые внутри SSI дальше текущего подзапроса
> не хранятся. Надо будет исправить.


Игорь Сысоев
http://sysoev.ru




--
Alexej Bestchiokov
EMail/JID: proforg@xxxxxxxxxxxx
phone: +7 495 7853149

 




Copyright © Lexa Software, 1996-2009.