ПРОЕКТЫ 


  АРХИВ 


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: о левых перегибах в proxy_ca che_key


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: о левых перегибах в proxy_ca che_key
  • From: Dmitry Koterov <dmitry@xxxxxxxxxx>
  • Date: Tue, 8 Jun 2010 16:54:52 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:reply-to:received :in-reply-to:references:from:date:x-google-sender-auth:message-id :subject:to:content-type; bh=dGbKm+0Qy1LbbX1bvX7GQIlLQ2Ujt2vVaOmRwPmRn+A=; b=ZN0JutWOgb0PmaTmHGWCc0UBN8Yv4lP1lFMGEMVEqZc9iwCA5PZaU83LpTieBpdF1A UyZWalvzVC2eil1R2sMXmkDYjWqHGEVKrzZMCjcu1ecJbuVlFzgf+o79LYC5xAIcH4qt sijzrLVXwolgY3XxSLZXSQNUCD7+dPElbqLmA=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:reply-to:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:content-type; b=CW0UAoXJR6EKxkK7j6CXc2hRCuqyBfR7nyosnQm276gM5hjF7kyquLX8nweTqEPsF3 rqKYfaGEa8Xo565tWIpuqApZa1HokLf2oqNP0OSuestUSaueSOe87tTi93KiSTsUls1I C8OottwYKij36105lDspOFkMsK6mIguQNrx+U=
  • In-reply-to: <20100608115418.GD94909@xxxxxxxxxxxxx>
  • References: <20100608092737.GA94909@xxxxxxxxxxxxx> <AANLkTimGa79c6hWmO5V7DG5uFCNcGOFzGHJoE35OJsKb@xxxxxxxxxxxxxx> <20100608115418.GD94909@xxxxxxxxxxxxx>

Игорь, спасибо за указание на узкое место в статье. Я подправил текст http://dklab.ru/chicken/nablas/56.html в единственном месте:

===========================
Я буду предполагать, что вы используете связку nginx+fastcgi_php. Если вы применяете nginx+apache+mod_php, просто замените имена директив с fastcgi_cache* на proxy_cache*, а также внесите изменения в следующие директивы (чтобы уменьшить объем кэша):
proxy_cache_key "$request_method|$host|$request_uri";
proxy_set_header If-Modified-Since "";
proxy_set_header If-None-Match "";
Приведенный вариант работает во всех версиях nginx, начиная с 0.7.x (хотя в 0.8.31 и старше его можно упростить).
===========================

Правильно ли я понял, что такой вариант является рабочим во всех версиях nginx (не только в 0.8.x, но и в популярной до сих пор 0.8.x), а также не обладает побочными эффектами?..



2010/6/8 Igor Sysoev <igor@xxxxxxxxx>
On Tue, Jun 08, 2010 at 03:12:54PM +0400, SaveFrom.net wrote:

> Здравствуйте, Игорь.
>
>
> 8 июня 2010 г. 13:27 пользователь Igor Sysoev <igor@xxxxxxxxx> написал:
>
> > Товарищи!
> >
> > На днях в рассылке я увидел чудовищную конструкцию:
> >
> > 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 mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.