Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: Кеширование и SSI
 
 
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"
обрабатывается в том же локейшене что и основной запрос.
Получается, что то, что мне нужно скорее всего реализовать не
получится.
-- 
Best regards,
 Roman                            mailto:sirotar@xxxxxxx
 
 |