Re: $http Accept-Encoding превращается в $http Accept

Maxim Dounin mdounin на mdounin.ru
Вт Дек 6 14:06:25 UTC 2011


Hello!

On Tue, Dec 06, 2011 at 08:11:08AM -0500, nikolayb wrote:

> Здравствуйте, господа!
> 
> Я изучаю nginx и пробую настроить
> кэширование бэкенда на Amiro.CMS. Среди
> прочих проблем столкнулся с
> кэшированием gzip-контента и отдачей его
> клиенту не поддерживающему сжатие.
> 
> В топике
> http://forum.nginx.org/read.php?21,158471,158471#msg-158471 было
> предложено (1) добавить в ключ кэша
> $http_Accept-Encoding,

Переменная называется $http_accept_encoding.

> Сысоев предложил
> отключить вовсе gzip на бэкенде и
> оставить на совесть nginx (2).

Это более правильный вариант.  При добавлении в ключ 
Accept-Encoding'а у вас в кеше будет масса вариантов 
закешированных страниц, по количеству вариаций написания 
содержимого заголовка Accept-Encoding различными браузерами.

[...]

> 2. Если отключить gzip на бэкенде удалив
> заголовок с помощью proxy_set_header Accept-Encoding
> "", то в кэш будут падать страницы
> полновесные, и это существенно
> увеличит размер кэша, плюс nginx будет
> постоянно занят gzipованием попавших в
> кэш страниц для отдачи клиентам с
> поддержкой кэширования.

Если хочется поэкономить, то можно развернуть ситуацию в обратную 
сторону: на бекенд всегда отпралять "Accept-Encoding: gzip" (и 
хранить в кеше сжатые ответы), а при необходимости их разжимать.

    proxy_set_header Accept-Encoding "gzip";
    gunzip on;

http://mdounin.ru/hg/ngx_http_gunzip_filter_module

README где-то тут:
http://mdounin.ru/hg/ngx_http_gunzip_filter_module/file/tip/README

Maxim Dounin



Подробная информация о списке рассылки nginx-ru