ПРОЕКТЫ 


  АРХИВ 


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: Анонс: статья "Подводные к амни при использовании кэширова ния в nginx"



2009/10/19 Peter A Leonov <gojpeg@xxxxxxxxx>:
> On 19.10.2009, at 23:26, Аверьянов Сергей <asv@xxxxxxxxxxxxxxxxx> wrote:
>
>> On Mon, 19 Oct 2009 22:41:42 +0400, Dmitry Koterov <dmitry@xxxxxxxxxx>
>> wrote:
>>
>>> Было бы идеально, если бы скрипт, вставляемый по SSI, мог выставлять свои
>>> куки. Решило бы не только эту, но также еще и кучу других проблем.
>>>
>>> Однако, к сожалению, он это не может, я проверил.
>>
>> Если мне не изменяет память, фишка в том, что все хедеры уходят до того,
>> как начинают обрабатываться SSI-директивы.
>
> Их можно попросить задержаться ;)
>
>> Ну и по логике тоже не понятно. Допустим, есть 2 SSI директивы,
>> одна выставляет в некую куку значение Х, другая Y.
>> Выполняются директивы параллельно.
>> Результат в итоге малопредсказуем имхо.
>
> Это верно для многопоточных серверов, которые забывают друг о друге ;) nginx
> worker работает в один поток и может уложить две и более кук в заголовки
> ответа.

Это также верно для event-driven серверов, которые выполняют SSI
include с запросами на бекенды, поскольку порядок ответа бекендов не
известен.

А вот что здесь неверно, так это рассчитывать на порядок выполнения
запросов, без указания этого самого порядка.

Лучше поверните минус в ноль: если два SSI устанавливают одну куку,
значит точное значение куки не определено. И всё. Сам себе злобный
буратина. Не надо в разных подзапросах ставить одну куку.
В помощь, например, вот такая конструкция:

<!--# include virtual="/remote/body.php?argument=value"
allow_cookie="sessionid" -->

чётко задаёт какую куку может изменить конкретно этот подзапрос. Это
всё ещё не решает проблемы двух конкурентных подзапросов, но их просто
не надо писать два на одну куку.

>
> В принципе, из этого может получиться несложная и интересная задачка на
> изучение модуля SSI :)
>
>> --
>> С уважением,
>> Сергей Аверьянов
>
> --
> С уважением,
> Петр Леонов


 




Copyright © Lexa Software, 1996-2009.