Welcome! Log In Create A New Profile

Advanced

$http_Accept-Encoding превращается в $http_Accept

December 06, 2011 08:11AM
Здравствуйте, господа!

Я изучаю nginx и пробую настроить кэширование бэкенда на Amiro.CMS. Среди прочих проблем столкнулся с кэшированием gzip-контента и отдачей его клиенту не поддерживающему сжатие.

В топике http://forum.nginx.org/read.php?21,158471,158471#msg-158471 было предложено (1) добавить в ключ кэша $http_Accept-Encoding, Сысоев предложил отключить вовсе gzip на бэкенде и оставить на совесть nginx (2).

1. При попытке добавить переменную в ключ, nginx решил что $http_Accept-Encoding есть $http_Accept плюс строка "-Encoding".
Я попробовал создать дополнительную переменную, но nginx показал стойкость и также представил $http_Accept-Encoding как $http_Accept.

кусок конфига:
set $ae "$http_Accept-Encoding";
proxy_cache_key "BASE $request_method|$http_if_modified_since|$http_if_none_match|$ae|$host|$uri$is_args$args";

кусок кэша для Firefox (с gzip):
KEY: BASE GET|||text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8-Encoding|www.site.ru|/katalog/products/aksessuary

кусок кэша для curl (без gzip)
KEY: BASE GET|||*/*-Encoding|www.site.ru|/katalog/products/aksessuary

Т.е. ключ разделил на два случая Accept-Encoding за счет разного заголовка. Плохо то, что может придти клиент с
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
и отключенным gzip, а nginx по ключу отдаст gzip-содержимое кэша.

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

$http_Accept-Encoding превращается в $http_Accept

nikolayb December 06, 2011 08:11AM

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

nikolayb December 06, 2011 08:16AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

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