Примерно так я это и понял вспоминая фразу про параллельно выполняемый подзапросы :) Игорь, сделай пожалуйста, как выяснилось это временами очень важный момент ...
> да, это работает пока 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 дальше текущего подзапроса > не хранятся. Надо будет исправить.