Welcome! Log In Create A New Profile

Advanced

Re: дубли в кэше

Maxim Dounin
November 09, 2015 02:36PM
Hello!

On Mon, Nov 09, 2015 at 10:03:42PM +0300, Anton Kuznetsov wrote:

> Включил логирование Vary - обнаружил ровно два варианта. Четко повторяют
> что передал браузер и соответственно четко следует за моей переменной
> $cache_gzip=0|1-
> вроде бы должно получаться два моих задуманных варианта.

В заголовке Vary указываются заголовки запроса, от которых зависит
вторичный ключ кеширования. Т.е. даже при ровно одном варианте,
Vary:

Vary: Accept-Encoding

количество возможных варинтов ответов начинает определяеться
количеством возможных значений Accept-Encoding, которые присылает
клиент.

> 2015-11-09 21:54 GMT+03:00 Anton Kuznetsov <maybe@arjlover.net>:
>
> > Но позвольте, зачем тогда нужен ключ кэширования? Я же четко сказал от
> > чего он должен зависить? Почему он зависит еще от чего-то?

Явно заданный ключ кеширования работает тогда и только тогда,
когда мы заранее знаем, от чего зависит ответ бекенда. В этом
случае проверку Vary можно выключить, и использовать только явно
заданный ключ.

Если же результат ответа бекенда заранее не известен, то
приходится пытаться придумывать что-то, что позволило бы бекенду
контролировать процесс.

В HTTP/1.1 для этого придуман механизм вариативности ресурсов -
ресурс может существовать в нескольких вариантах, и с помощью
заголовка Vary бекенд сообщает о том, от каких именно заголовков
завист, какой вариант будет выбран. Механизм, скажем так, не
очень, и приводит к ужасному дублированию ресурсов при
кешировании (особенно, если пытаться использовать "Vary:
User-Agent", как некоторые делают), но уж какой есть. Задачу свою
он, так или иначе, выполняет, и позволяет обеспечить корректность
ответов в общем случае, когда поведение бекенда заранее не
известно.

Если вам этот механизм не нужен - в nginx'е есть ручка,
позволяющая поддержку этого механизма выключить, и,
соответветственно, явно прописать правила руками.

Подробнее тут, как уже говорилось, тут:

http://nginx.org/r/fastcgi_ignore_headers
http://nginx.org/r/fastcgi_cache_valid

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

дубли в кэше

Anton Kuznetsov November 09, 2015 11:58AM

Re: дубли в кэше

Maxim Dounin November 09, 2015 12:04PM

Re: дубли в кэше

Anton Kuznetsov November 09, 2015 01:56PM

Re: дубли в кэше

Anton Kuznetsov November 09, 2015 02:04PM

Re: дубли в кэше

Maxim Dounin November 09, 2015 02:36PM

Re: дубли в кэше

Evgeniy Berdnikov November 09, 2015 04:22PM

Re: дубли в кэше

S.A.N November 10, 2015 08:44AM

Re: дубли в кэше

Maxim Dounin November 10, 2015 08:58AM

Re: дубли в кэше

S.A.N November 10, 2015 03:32PM

Re: дубли в кэше

Evgeniy Berdnikov November 10, 2015 09:36AM

Re: дубли в кэше

Anton Kuznetsov November 09, 2015 07:48PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 286
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