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