我正在我的系统上本地开发一个 Web 应用程序,使用 Tomcat (tomcat-7.0.52) 为其提供服务。在生产中,我想用 Apache httpd (Apache/2.2.15) 在 Tomcat 前面。
这有效,我设法根据需要配置缓存。现在我想配置压缩,但似乎无法让Apache httpd修改它从Tomcat获得的响应。
但正如我在这里读到的,这是首选的方式。mod_jk 压缩仅在 httpd 和 Tomcat 之间进行,如果我想直接在 Tomcat 中配置压缩,我需要一个额外的 servlet。
我的 vhost 文件中有以下行来启用静态和 httpd 服务内容的压缩:
#SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/plain text/html application/json text/xml text/css text/javascript
Run Code Online (Sandbox Code Playgroud)
启用第一行对我没有任何改变。
我使用 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>
Run Code Online (Sandbox Code Playgroud)
使用 Firebug 我可以看到 Tomcat 返回的请求的 MIME 类型是
/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 …Run Code Online (Sandbox Code Playgroud)