Welcome! Log In Create A New Profile

Advanced

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

SaveFrom.net
October 16, 2009 03:24AM
благодарю!

16 октября 2009 г. 9:56 пользователь Noon es Shadow
<noonesshadow@gmail.com>написал:

> Спасибо за статью!!!
>
> 16 октября 2009 г. 8:29 пользователь Igor Sysoev <is@rambler-co.ru>написал:
>
> On Fri, Oct 16, 2009 at 03:41:23AM +0400, Dmitry Koterov wrote:
>>
>> > Я тут статью черканул: http://dklab.ru/chicken/nablas/56.html
>> > Если есть мысли/замечания/комментарии/уточнения, буду рад внести
>> изменения.
>>
>> > fastcgi_cache_valid: кэшируем код ответа 304 тоже
>> >
>> > fastcgi_cache_valid 200 301 302 304 5m;
>> >
>> > В директиве fastcgi_cache_valid<
>> http://sysoev.ru/nginx/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_valid
>> >мы
>> > заставляем кэшировать не только стандартные коды 200 ОК, 301 Moved
>> > Permanently и 302 Found, но также и 304 Not Modified. Почему? Давайте
>> > вспомним, что означает 304. Он выдается с пустым телом ответа в двух
>> > случаях:
>> >
>> > - Если браузер послал заголовок "If-Modified-Since: date", в котором
>> date
>> > больше либо равна значению заголовка ответа "Last-Modified: date".
>> Т.е.
>> > клиент спрашивает: "Есть ли новая версия с момента date? Если нет,
>> верни мне
>> > 304 и сэкономь трафик. Если есть, отдай мне тело страницы".
>> > - Если браузер послал заголовок "If-None-Match: hash", где hash
>> совапдает
>> > со значением заголовка ответа "ETag: hash". Т.е. клиент спрашивает:
>> > "Отличается ли текущая версия страницы от той, что я запросил в
>> прошлый раз?
>> > Если нет, верни мне 304 и сэкономь трафик. Если да, отдай тело
>> страницы".
>> >
>> > В обоих случаях Last-Modified или ETag будут взяты, скорее всего, из
>> кэша
>> > nginx, и проверка пройдет очень быстро. Нам незачем "дергать" PHP только
>> для
>> > того, чтобы скрипт выдал эти заголовки, особенно в свете того, что
>> клиентам,
>> > которым уйдет ответ 200, он будет отдан из кэша. fastcgi_cache_key:
>> > внимательно работаем с зависимостями
>> >
>> > fastcgi_cache_key
>> >
>> "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
>> >
>> > Особого внимания заслуживает значение в директиве
>> > fastcgi_cache_key<
>> http://sysoev.ru/nginx/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_key
>> >.
>> > Я привел минимальное рабочее значение этой директивы. Шаг вправо, шаг
>> влево,
>> > и вы начнете в ряде случаев получать "неправильные" данные из кэша.
>> Итак:
>> >
>> > - Зависимость от $request_method нам нужна, т.к. HEAD-запросы в
>> Интернете
>> > довольно часты. Ответ на HEAD-запрос никогда не содержит тела. Если
>> убрать
>> > зависимость от $request_method, то может так совпасть, что кто-то до
>> вас
>> > запросил главную страницу HEAD-методом, а вам потом по GET отдастся
>> пустой
>> > контент.
>> > - Зависимость от $http_if_modified_since нужна для того, чтобы кэш с
>> > ответом 304 Not Modified не был случайно отдан клиенту, делающему
>> обычный
>> > GET-запрос. Иначе клиент может получить пустой ответ из кэша.
>> > - То же самое и с $http_if_none_match. Мы должны быть застрахованы от
>> > выдачи пустых страниц клиентам!
>> > - Наконец, зависимость от $host и $request_uri не требует
>> комментариев.
>>
>> Спасибо. Комментарий по поводу 304 и HEAD:
>>
>> 1) HEAD должен отрабатываться нормально без дополнительных настроек:
>> fastcgi_cache_key "...$request_method...", то есть, у бэкенда всё равно
>> запрашивается GET, полный ответ кэшируется и отдаётся только заголовок.
>>
>> 2) 304, $http_if_modified_since, $http_if_none_match, etc.:
>> Строки If-Modified-Since, If-Range, Range, etc. вырезаются из запроса
>> к бэкенду, поэтому всегда кэшируется полный ответ. Клиенту же
>> возвращется то, что он попросил.
>>
>>
>> --
>> Игорь Сысоев
>> http://sysoev.ru
>>
>>
>
Subject Author Posted

Анонс: статья "Подводные камни при использовании кэширования в nginx"

Dmitry Koterov October 15, 2009 07:48PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Sky Cat October 15, 2009 10:16PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Vladislav Vladimirovich October 20, 2009 05:20AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Sky Cat November 01, 2009 05:52PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Vladislav November 02, 2009 02:18AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Alex Ivanov November 02, 2009 01:44PM

Замена содержимого Set-Cookie

Дугин Сергей March 27, 2010 09:38PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Sky Cat November 02, 2009 02:16PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Nikolay Grebnev November 06, 2009 03:36AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Boris Dolgov November 06, 2009 01:48PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

andrew.ivanov November 06, 2009 02:04PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Vladislav November 09, 2009 05:46AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Igor Sysoev October 16, 2009 01:42AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

noonesshadow October 16, 2009 02:12AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

SaveFrom.net October 16, 2009 03:24AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Daniel Podolsky October 16, 2009 08:32AM

Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Alexandre Kalendarev October 16, 2009 09:32AM

Re: Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Daniel Podolsky October 16, 2009 10:26AM

Re: Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Dmitry Koterov October 16, 2009 01:08PM

Re: Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Daniel Podolsky October 16, 2009 01:40PM

Re: Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Аверьянов Сергей October 16, 2009 02:10PM

Re: Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Dmitry Koterov October 16, 2009 02:16PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Peter A Leonov October 16, 2009 03:52AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Artem Bokhan October 16, 2009 03:52AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Denis F. Latypoff October 16, 2009 04:04AM

Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Alexandre Kalendarev October 16, 2009 04:22AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Slava Kokorin October 16, 2009 04:44AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Igor Sysoev October 16, 2009 05:10AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Slava Kokorin October 16, 2009 05:36AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Igor Sysoev October 16, 2009 05:54AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Александр Сытар October 16, 2009 06:16AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Maxim Dounin October 16, 2009 06:16AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Igor Sysoev October 16, 2009 06:30AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Maxim Dounin October 16, 2009 08:02AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Slava Kokorin October 16, 2009 08:34AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Dmitry Koterov October 16, 2009 01:12PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Dmitry Koterov October 16, 2009 01:12PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Dmitry Koterov October 16, 2009 01:20PM

Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Михаил Монашёв October 16, 2009 01:40PM

Re: Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Dmitry Koterov October 16, 2009 02:16PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Denis F. Latypoff October 16, 2009 01:50PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Igor Sysoev October 20, 2009 09:16AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Igor Sysoev October 20, 2009 09:22AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Slava Kokorin October 19, 2009 05:52AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Антон Кирюшкин October 16, 2009 05:10AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Daniel Podolsky October 16, 2009 08:44AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

maxim77k October 19, 2009 06:25AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Dmitry Koterov October 19, 2009 02:54PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Bokhan Artem October 19, 2009 03:14PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Аверьянов Сергей October 19, 2009 03:32PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Peter A Leonov October 19, 2009 04:06PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Sergey Shepelev October 19, 2009 08:04PM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Nikolay Grebnev October 24, 2009 06:32AM

Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Daniel Podolsky October 24, 2009 06:52AM

Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Михаил Монашёв October 24, 2009 06:54AM

Re: Re[2]: Анонс: статья "Подводные камни при использовании кэширования в nginx"

Nikolay Grebnev October 24, 2009 07:26AM

Условное кэширование NGINX

Vladislav October 24, 2009 01:24PM

Re: Условное кэширование NGINX

Dmitry Koterov October 24, 2009 05:52PM

Re: Условное кэширование NGINX

Vladislav October 25, 2009 02:24AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 323
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready