如何在apache tomcat中启用mod_deflate?我的网站页面加载速度很慢。在Google网页上测试速度时,建议启用压缩,即在apache tomcat.how中设置mod_deflate来执行此操作吗?
答案 0 :(得分:0)
您必须在tomcat连接器上激活压缩
连接器可能会使用HTTP / 1.1 GZIP压缩来尝试节省服务器带宽。参数的可接受值是“off”(禁用压缩),“on”(允许压缩,导致文本数据被压缩),“force”(在所有情况下强制压缩)或数字整数值(这是等效于“on”,但指定压缩输出之前的最小数据量)。如果内容长度未知且压缩设置为“on”或更具攻击性,则输出也将被压缩。如果未指定,则将此属性设置为“off”。
<Connector port="8080" protocol="HTTP/1.1"
compression="on" ...
/>
答案 1 :(得分:0)
压缩响应的GZip可以在应用程序堆栈的不同层完成。您特别询问mod_deflate,它是一个Apache Web服务器模块。因此,Tomcat没有mod_deflate。但是,您可以在应用程序容器级别配置GZip压缩。
在强>
<Connector port="8080" protocol="HTTP/1.1" compression="on" ... />
<强>强制强>
<Connector port="8080" protocol="HTTP/1.1" compression="on" ... />
根据您的Tomcat实例,也可能使用以下属性
- compressionMinSize
- noCompressionUserAgents
- compressableMimeType
注意:默认情况下,对小于2048 kb的响应不会发生压缩
然而,这不完整,可能不是你想要的。在Liferay中有三种方法可以做到这一点。
这是一个有序列表。在Web服务器级别(使用mod_deflate或其他模块)进行压缩通常是最佳性能解决方案。压缩servlet容器是平均性能第二好的。最后,您可以在Liferay门户网站上的portal.properties
或portal-ext.properties
中切换一些属性以进行压缩。
如果您要在第1层或第2层(如上所列)压缩响应,我强烈建议您将以下内容添加到门户网站的覆盖属性中。
com.liferay.portal.servlet.filters.gzip.GZipFilter = false
默认情况下,此设置为true,但如果您将责任移交给其他图层,则需要将其设置为false。如果您要严格使用属性覆盖来压缩响应,则可能需要使用此方法切换压缩级别。
gzip.compression.level = -1
接受以下一组值{-1, 1 - 9}
,其中 -1 是默认值, 1 是最快的压缩值, 9 是使用java.util.zip.Deflater