Re[2]: Кеширование и SSI

Roman sirotar at mail.ru
Fri Aug 28 16:24:30 MSD 2009


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 at mail.ru






More information about the nginx-ru mailing list