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