proxy_cache & gzip
Maxim Dounin
mdounin на mdounin.ru
Пн Авг 17 17:29:29 UTC 2015
Hello!
On Mon, Aug 17, 2015 at 08:11:11PM +0300, Eugene Toropov wrote:
> Добрый вечер,
>
> У меня странная (на мой взгляд) ситуация - есть proxy_cache_path, через
> который ходят POST запросы с заголовком “Accept-Encoding: gzip”. В коде
> клиента в ответе от nginx-а я вижу gzip-нутый body и “Content-Encoding:
> gzip”, но tcpflow показывает, что между nginx-ом и апстримом никакого
> gzip-а нет. Более того, я нашел закэшированный в папке proxy_cache_path-а
> файл и убедился, что контент там не gzip-нутый (хотя ключ кэша -
> "$host$request_uri $http_accept_encoding” - и в моем примере я точно вижу
> “gzip” на месте $http_accept_encoding). Подскажите, пожалуйста, как
> заставить nginx работать с апстримом по gzip-у?
Вопрос "отдавать gzip или нет" решает тот, кто отдаёт.
Соответственно вам надо смотреть настройки бекенда, а не nginx'а.
В частности, если в роли бекенда опять же nginx - то он по
умолчанию не жмёт ответы по HTTP/1.0, см. тут:
http://nginx.org/r/gzip_http_version/ru
Отдельно отмечу, что $http_accept_encoding в ключе - чревато
большим количеством дублей одних и тех же ответов. Если хочется
хранить в кеше сжатое, то эффективнее будет сделать
proxy_set_header Accept-Encoding gzip;
и включить gunzip, см. http://nginx.org/r/gunzip/ru.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru