Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Кеширование и SSI
On Fri, Aug 28, 2009 at 03:24:30PM +0300, Roman wrote:
> Hello Igor,
>
> Thursday, August 27, 2009, 3:11:15 PM, you wrote:
>
> IS> On Thu, Aug 27, 2009 at 02:51:32PM +0300, Roman wrote:
>
> >> Добрый день,
> >> имеется nginx version: nginx/0.8.10.
> >>
> >> Собственно что пытаюсь сделать,
> >> страницы генерятся и кешируются правильно,
> >>
> >> proxy_cache_key "$uri$is_args$args$cookie_auth" выглядит вот так,
> >>
> >> кука 'auth' для каждого пользователя уникальна, получается что пользы
> >> от кеширования для большого кол-ва пользователей не очень много, т.к.
> >> все равно постоянно приходится дергать бакенд, базу и т.д.
> >>
> >> Подумал сделать так: из ключа выкинуть $cookie_auth
> >> proxy_cache_key "$uri$is_args$args";
> >>
> >> ну а идентификатор ползователей выдергивать с помощью SSI
> >> <!--# include virtual="/get_mem_id.php?auth=cookie_auth" set="member_id"
> >> -->
> >> или же получить имя
> >> <!--# echo var="cookie_username" default="" -->
> >> ну и так далее...
> >>
> >> но что-то у меня не рабоатет, либо криво настроено, либо так нельзя
> >> сделать.
> >>
> >> Подскажите, пожалуйста, как работает кеширование, а именно,
> >> кешируется ответ с уже обработанными SSI инструкциями или же нет?
>
> IS> location / {
> IS> ssi on;
> IS> proxy_pass ...
> IS> proxy_cache_key $request_uri;
> IS> }
>
> IS> location = /get_mem_id.php {
> IS> proxy_pass ...
> IS> proxy_cache_key $cookie_auth;
> IS> }
>
> Проведя эксперементы, выяснил что в такой конструкции
> <!--# include virtual="/get_mem_id.php?auth=cookie_auth" set="member_id" -->
> подзапрос "/get_mem_id.php?auth=cookie_auth"
> обрабатывается в том же локейшене что и основной запрос.
Не должен. Нужен отладлочный лог.
> Получается, что то, что мне нужно скорее всего реализовать не
> получится.
--
Игорь Сысоев
http://sysoev.ru
|