Как заставить Apache mod_deflate и Transfer-encoding: Chunked работать вместе?
Я пытаюсь использовать концепцию bigpipe на нашем сайте. Это означает, что нужно пытаться отправить ответ кусками, а не отправлять его целиком, чтобы пользователь чувствовал, что страница работает быстро. Я успешен в этом, используя метод flushBuffer для объекта ответа в Java. Но теперь, когда я пытаюсь сжать содержимое с помощью модуля apache mod_deflate, фрагментация теряется.
Вот конфигурация от Apache, используемая для сжатия содержимого
**
Начать настройку mod_deflateDeflateBufferSize 100
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
CustomLog /var/log/httpd/deflate_log deflate
Конец конфигурации mod_deflate **Вот заголовок ответа, когда в apache включен дефлат
Connection: Keep-Alive
Content-Encoding: GZIP
Content-Length: 7916
Content-Type: Текст / html; кодировка = UTF-8
Дата: пт, 27 января 2012 20:11:11 GMT
Keep-Alive: тайм-аут = 300, макс = 3997
Сервер: Apache
Vary: Accept-Encoding
Заголовок ответа при отключении дефлята в apache
Connection: Keep-Alive
Content-Type: Текст / html; кодировка = UTF-8
Дата: пт, 27 января 2012 20:21:14 GMT
Keep-Alive: тайм-аут = 300, макс = 3997
Сервер: Apache / 2.2.3 (CentOS)
Transfer-Encoding: фрагментированный
Как вы можете видеть выше, 2 заголовка работают только в том случае, если сжатие отключено. Я искал в Интернете об этом, и люди предлагали уменьшитьDeflateBufferSize стоимость. Я уменьшил значение до 100 байт, как вы можете видеть в моей конфигурации apache, но это все еще не решило проблему. Значение DeflateBufferSize, равное 100 байтам, означает, что ответ буферизуется в apache до получения 100 байт, а затем он сжимается.
Я смотрел на модуль mod_gzip, который был в комплекте со старым apache 1.3, и этот модуль имеет следующую директиву, которая позволяет разбивать содержимое на куски.
mod_gzip_dechunk Да
Кто-нибудь знает такую директиву в mod_deflate в комплекте с apache 2.x?
Или кто-нибудь знает, как сжать кусочный контент?