Tomcat mod_jk的压缩导致Apache httpd

我正在我的系统本地开发一个Web应用程序,使用Tomcat(tomcat-7.0.52)提供服务。 在生产中,我想用一个Apache httpd(Apache / 2.2.15)来对付Tomcat。

这工作,我设法根据需要configurationcaching。 现在我想configuration压缩,但似乎无法获得Apache httpd来修改从Tomcat获得的响应。

但是,正如我在这里读到的,这是做这件事的首选方式。 mod_jk压缩只在httpd和Tomcat之间,如果我想直接在Tomcat中configuration压缩,我需要一个额外的servlet。

我在我的虚拟主机文件中有以下行来启用压缩静态和httpd服务的内容:

#SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/plain text/html application/json text/xml text/css text/javascript 

启用第一行并没有改变我的任何东西。

我使用mod_jk将这些请求传递给Tomcat:

 <IfModule mod_jk.c> JkMount /myapp/j_security_check worker1 JkMount /myapp/*.jsp worker1 JkMount /myapp/DataSourceLoader worker1 JkMount /myapp/ServletLogin worker1 </IfModule> 

使用Firebug我可以看到,Tomcat返回的请求的MIMEtypes是

 /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 ,因为我也有没有UTF-8的MIMEtypes,我也尝试过只是SetOutputFilter ,我认为这些指令根本不操纵Tomcat的答案。

所以我的问题是:

  1. 什么是最好的解决scheme? Tomcat压缩或Apache httpd压缩? (根据gzip压缩使用mod_deflate apache与tomcat (redirect在这里: https : //stackoverflow.com/questions/16653642/tomcat-7-gzip-compression-not-working )它应该在httpd中完成)

  2. 如何为mod_jk结果启用Apache httpd-compression (可能来自JBoss而不是Tomcat)?

  3. 也许有关: 如何修改Apache httpd中的mod_jk结果的caching头?

谢谢!

Blama,

我同意#1在压缩可以处理与Apache或另一个Web服务器。

这是我的想法:

  1. 我在tomcat前面使用apache mod_proxy或nginx。 这使我能够处理SSL,压缩和静态内容,如果需要的话。 我已经开始移动到nginx,以取代前端的Apache。
  2. mod_deflate为apache或nginx ngx_http_gzip_module
  3. 你可以在tomcat或apache中处理所有的caching规则。 这取决于你想要的规则。