nginx-1.7.7
Maxim Dounin
mdounin at mdounin.ru
Tue Feb 17 12:44:04 UTC 2015
Hello!
On Mon, Feb 16, 2015 at 01:51:19PM -0500, nrr wrote:
> Добрый вечер!
>
> 1. Как все таки использовать эту возможность?
>
> В документации не нашел как использовать, есть только вот это:
> Ответ, в заголовке которого есть поле “Vary” со специальным значением “*”,
> не будет кэшироваться (1.7.7). Ответ, в заголовке которого есть поле “Vary”
> с другим значением, будет закэширован с учётом соответствующих полей
> заголовка запроса (1.7.7).
>
> Нужно ли в fastcgi_cache_key добавлять $http_accept_encoding (или другую
> переменную) или сохранение различных версий в кэше и так работает в
> зависимости от заголовка Vary или Accept-Encoding?
Не нужно ничего добавлять, всё само работает корректно. Если
бекенд возвращает ответ с заголовком Vary, то nginx основании
переданного заголовка Vary и заголовков запроса клиента вторичный
ключ, и будет возвращать данный ответ только тем клиентам, у
которых ключ совпадёт (у других клиентов - будут свои вторичные
ключи и свои ответы).
Следует, однако, понимать, что эффективность кеширования при
использовании Vary - низкая, т.к. вторичных ключей даже при
использовании "Vary: Accept-Encoding" будет наверняка больше, чем
возможных вариантов ответов бекенда.
> 2. Есть ли такая возможность в nginx:
> кэширование nginx-ом 2-х результатов: gzip и не gzip если backend возвращает
> только не gzip версию?
Только с помощью дополнительного проксирования.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru