Я пытаюсь включить сжатие gzip на моем сервере Apache, который выходит на экземпляр Tomcat с помощью коннектора. Я пробовал несколько вариантов настроек конфигурации модуля в своем httpd.conf. Вот моя последняя попытка:
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
DeflateCompressionLevel 9
SetEnvIfNoCase Request_URI \.(?:gif|png|jpg|jpeg)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog "/var/output/logs/deflate_log" deflate
ErrorLog "/var/output/logs/deflate_error_log"
</IfModule>
Я проверяю заголовки ответа с помощью Firebug, и я убедился, что заголовки запроса имеют Accept-Encoding: gzip deflate
но каждый раз Content-Encoding
заголовок отсутствует в ответе.
Я попытался добавить следующую строку в httpd.conf
, но выдает ошибку, mod_deflate
является встроенным модулем и не может быть загружен. Я подтвердил это apachectl -t
и это показывает mod_deflate.c
как скомпилированный модуль.
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
У меня есть экземпляр Tomcat, подключенный к Apache через коннектор AJP. Когда я отлаживал свои сервлеты, я обнаружил, что ответ Content-Type
Я получаю для своего тестового сценария application/javascript;charset=UTF-8
. Я изначально использовал AddOutputFilterByType
директиву и подумал, что дополнительные charset=UTF-8
часть может испортить тип MIME для Apache, но тогда он не работает с SetOutputFilter DEFLATE
также.
Мои пользовательские журналы для deflate
многократно показывать следующую строку:
GET /myservlet HTTP/1.1" -/- (-%)
Я не понимаю, почему это не работает. Моя версия Apache 2.0.63
. Кто-нибудь сталкивался с подобной проблемой? Могу ли я продолжить отладку и проверить, что происходит в Apache? Возможно, включить ведение журнала отладки?
Спасибо, Венкат.
Вам необходимо включить сжатие на Tomcat, а не на httpd для контента, обслуживаемого Tomcat.