我正在我的系统本地开发一个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的答案。
所以我的问题是:
什么是最好的解决scheme? Tomcat压缩或Apache httpd压缩? (根据gzip压缩使用mod_deflate apache与tomcat (redirect在这里: https : //stackoverflow.com/questions/16653642/tomcat-7-gzip-compression-not-working )它应该在httpd中完成)
如何为mod_jk结果启用Apache httpd-compression (可能来自JBoss而不是Tomcat)?
也许有关: 如何修改Apache httpd中的mod_jk结果的caching头?
谢谢!
Blama,
我同意#1在压缩可以处理与Apache或另一个Web服务器。
这是我的想法: