Я разрабатываю веб-приложение локально в своей системе, обслуживая его с помощью Tomcat (tomcat-7.0.52). В производстве я хочу установить Tomcat с Apache httpd (Apache / 2.2.15).
Это работает, и мне удалось настроить кеширование по мере необходимости. Теперь я хочу настроить сжатие, но мне кажется, что Apache httpd не может изменить ответ, полученный от Tomcat.
Но, как я читал здесь, это предпочтительный способ сделать это. Сжатие mod_jk осуществляется только между httpd и Tomcat, и если я хочу настроить сжатие непосредственно в Tomcat, мне понадобится дополнительный сервлет для этого.
У меня есть следующая строка в моем vhost-файле, чтобы включить сжатие статического и httpd-контента:
#SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/plain text/html application/json text/xml text/css text/javascript
Включение 1-й строки для меня ничего не изменило.
Я передаю эти запросы Tomcat с помощью mod_jk:
<IfModule mod_jk.c>
JkMount /myapp/j_security_check worker1
JkMount /myapp/*.jsp worker1
JkMount /myapp/DataSourceLoader worker1
JkMount /myapp/ServletLogin worker1
</IfModule>
Используя Firebug, я вижу, что mime-тип запросов, возвращаемых Tomcat, равен
/myapp/j_security_check: "text/plain; charset=UTF-8" (with the space)
/myapp/*.jsp: "text/plain; charset=UTF-8" (with the space)
/myapp/DataSourceLoader: "application/json;charset=UTF-8" (without space)
Из-за пробелов я не могу добавить AddOutputFilterByType и поскольку у меня также есть mime-типы без UTF-8, я также пробовал просто SetOutputFilter, Я думаю, что эти директивы вообще не управляют ответом Tomcat.
Итак, мои вопросы:
Какое лучшее предлагаемое решение? Сжатие Tomcat или сжатие Apache httpd? (В соответствии с сжатие gzip с использованием mod_deflate apache с tomcat (который перенаправляется сюда: https://stackoverflow.com/questions/16653642/tomcat-7-gzip-compression-not-working) это надо делать в httpd)
Как включить httpd-сжатие Apache для результатов mod_jk (возможно, от JBoss, а не Tomcat)?
Возможно связанные: Как изменить заголовки кеширования из результатов mod_jk в Apache httpd?
Спасибо!
Блама,
Я согласен с №1 в том, что сжатие можно обрабатывать с помощью apache или другого веб-сервера.
Вот мои мысли: