Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Вопрос Игорю
On Tue, Dec 15, 2009 at 12:15:03AM +0300, Peter Leonov wrote:
> On 14.12.2009, at 23:50, Дмитрий Андреев <itskemko@xxxxxxxxx> wrote:
>
> > Вы имеете в виду какие-то архитектурные ограничения или логические?
> > Если логические, то ничего подобного: вам в той ветке рассылки из ко
> > торой вы копипастите резонно возразили, сказав что это можно вполне
> > обойти, если начать выдавать заголовки уже после того, как контент с
> > жался. Если архитектурные, то стоило бы так сразу и сказать
> >
> > 14 декабря 2009 г. 21:43 пользователь Andrew Sitnikov <sitnikov@xxxxxxxxxx
> > > написал:
> > Hello ethaniel,
> >
> > e> - content-length к gzip модулю
> > Date: Sun, 13 Dec 2009 15:44:31 +0300
> > ------------------------
> > Я не Игорь, но отвечу:
> >
> > для выдачи Content-Length при сжатии необходимо знать результат
> > сжатия на этапе выдачи заголовков, т.е. до самого сжатия; так что
> > если принесёте машину времени - будет Content-Length, а во всех
> > остальных случаях ответ отрицательный.
> >
> > Maxim Dounin
> > ------------------------
>
> Честно говоря, для таких случаев в HTTP 1.1 придумали чанки. Не то,
> чтобы очень элегантно, но вполне работает.
>
> Если вас смущает шестой ие (а он, наверняка, смущает) попросите энжи
> не сжимать для него. Все равно он настолько медленно все делает, что
> никто и не заметит ;)
>
> А в принципе, можно научить модуль сжатия накапливать данные до какого-
> то предела, и только потом переходить на чанки. Но это чисто
> спортивное упражнение, в быту не пригодится :)
Накапливать gzip уже умеет сейчас с помощью "postpone_gzipping 64k",
но до конца это не отлажено - иногда фильтры подвисают при включении
большого ответа через SSI. Сделано это было для того, чтобы уменьшить
расход памяти. Если у нас есть SSI с относительно медленными удалёнными
включениями, то gzip-фильтр инициализирует zlib после получение первых
данных. При этом zlib выделяет около 400K, которые висят без дела, пока
не придут все SSI-вставки. С postpone_gzipping можно буферизировать без
сжатия заданное количество данных, и начинать сжатие только при превышении.
--
Игорь Сысоев
http://sysoev.ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|