Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Gzip и ETag
Hello!
On Tue, May 07, 2013 at 11:32:07PM +0100, Anatoly Mikhailov wrote:
> Меня настораживает интересная закономерность, включая/отключая gzip в
> конфигурации Nginx,
> ETag заголовок пропадает/появляется соответственно в прокированном ответе от
> бэкэнда (Unicorn).
> Проще говоря, при gzip off ответ всегда приходит с ETag, все остальные
> параметры на это не влияют.
>
> Бэкнэнд, если слушает порт, то легко убедиться, что он добавляет заголовок
> ETag к каждому ответу,
> и чтобы проксировать ETag заголовок через upstream приходится выключать gzip.
> Если я правильно понимаю, то сжатый ответ не может содержать некоторые
> заголовки?
При любых изменениях тела ответа, в том числе - модулем gzip,
ETag'и из ответа убираются. Это сделано, т.к. стандарт требует,
чтобы strong etags у ответов совпадали тогда и только тогда, когда
ответы совпадают до байта. (А если ответы будет не совпадать при
одинаковых ETag'ах - это в свою очередь чревато получением
неверного суммарного ответа при комбинировании нескольких ответов
на range-запросы.) Почитать подробности можно тут (и далее по
ссылкам):
http://tools.ietf.org/html/rfc2616#section-3.11
В качестве оптимизации - можно обучить nginx отделять weak etags
от strong etags, и убирать только strong. Но для начала имеет
смысл понять - надо ли оно на самом деле.
--
Maxim Dounin
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|