Re: о левых перегибах в proxy_cache_key

Igor Sysoev igor на sysoev.ru
Вт Июн 8 15:54:18 MSD 2010


On Tue, Jun 08, 2010 at 03:12:54PM +0400, SaveFrom.net wrote:

> Здравствуйте, Игорь.
> 
> 
> 8 июня 2010 г. 13:27 пользователь Igor Sysoev <igor at sysoev.ru> написал:
> 
> > Товарищи!
> >
> > На днях в рассылке я увидел чудовищную конструкцию:
> >
> > proxy_cache_key
> > "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
> >
> > По всей видимости, её источник - http://dklab.ru/chicken/nablas/56.html
> > где она оправдано применяется в FastCGI. Но там же есть примечание:
> > "Если вы применяете nginx+apache+mod_php, просто замените имена
> > директив с fastcgi_cache* на proxy_cache*."
> >
> > Добавлять $http_if_modified_since и $http_if_none_match в proxy_cache_key
> > никогда, повторю, НИКОГДА, не было нужно. Их всегда можно было обнулить
> > с помощью:
> >
> >      proxy_set_header  If-Modified-Since  "";
> >      proxy_set_header  If-None-Match      "";
> >
> > Любители комбинаторики легко посчитают во сколько раз увеличивается
> > размер кэша прииспользовани такого ключа.
> >
> > Начиная с 0.8.1,
> >      proxy_set_header  If-Modified-Since  "";
> > писать не нужно. А начиная с 0.8.31, и
> >      proxy_set_header  If-None-Match      "";
> >
> > Начиная с 0.8.40, можно написать
> >
> >      fastcgi_param  HTTP_IF_MODIFIED_SINCE  "";
> >      fastcgi_param  HTTP_IF_NONE_MATCH      "";
> >
> > но делать этого не нужно, так fastcgi_cache сам удаляет эти и некоторые
> > другие заголовки.
> >
> > Т.е. получается что часть
> "$request_method|$http_if_modified_since|$http_if_none_match|" можно удалять
> при использывании fastcge_cache ? Проблем с отдачей верного контента при
> различных(get/head) методах запросов не будет?

Да, можно удалять. POSTы не кэшируется вообще, если не сказать
      fastcgi_cache_methods  POST;
HEAD кэширует ответ с телом, отдаёт - без.

$request_uri я бы не рекомендовал использовать, лучше уже нормализованный
вариант "$uri?$args".


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru