Я пытаюсь использовать концепцию bigpipe на нашем веб-сайте. Это означает попытку отправить ответ в кусках, а не отправлять его в целом, чтобы пользователь чувствовал, что страница выполняется быстро. Мне это удается, используя метод flushBuffer для объекта ответа в java. Но теперь, когда я пытаюсь сжать контент с модулем apache mod_deflate, фрагмент потерян.Как сделать Apache mod_deflate и Transfer-encoding: Chunked работать вместе?
Вот конфигурация из апача используется для сжатия Контента
**
Begin mod_deflate конфигурации
DeflateBufferSize 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
End 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
Response заголовок, когда дефляция отключена в apache
Подключение: Keep-Alive
Тип контента: текст/html; кодировка = UTF-8
Дата: Пт, 27 января 2012 20:21:14 GMT
Keep-Alive: Тайм-аут = 300, макс = 3997
Сервер: Apache/2.2.3 (CentOS)
Transfer- Кодирование: chunked
Как вы можете видеть выше, два заголовка работают, только если сжатие отключено. Я искал в Интернете по этому поводу, и люди предлагали уменьшить значение DeflateBufferSize. Я уменьшил значение до 100 байтов, как вы можете видеть в моей конфигурации apache, но это еще не решило проблему. DeflateBufferSize, установленный в 100 байт, означает, что ответ буферизуется в apache до получения 100 байтов, а затем сжимается.
Я смотрел модуль mod_gzip, который был связан со старым apache 1.3, и этот модуль имеет следующую директиву, которая позволяет загружать фрагментированный контент.
mod_gzip_dechunk Да
Кто-нибудь знает такой директивы в mod_deflate в комплекте с Apache 2.x?
Или кто-нибудь знает, как сжать содержимое, размещенное на нем?
Подождите - использовали ли вы mod_deflate и сжали в своем приложении? –