在apache中启用mod_deflate

时间:2017-07-03 12:35:23

标签: tomcat seo liferay

如何在apache tomcat中启用mod_deflate?我的网站页面加载速度很慢。在Google网页上测试速度时,建议启用压缩,即在apache tomcat.how中设置mod_deflate来执行此操作吗?

2 个答案:

答案 0 :(得分:0)

您必须在tomcat连接器上激活压缩

  

连接器可能会使用HTTP / 1.1 GZIP压缩来尝试节省服务器带宽。参数的可接受值是“off”(禁用压缩),“on”(允许压缩,导致文本数据被压缩),“force”(在所有情况下强制压缩)或数字整数值(这是等效于“on”,但指定压缩输出之前的最小数据量)。如果内容长度未知且压缩设置为“on”或更具攻击性,则输出也将被压缩。如果未指定,则将此属性设置为“off”。

Tomcat doc conf

<Connector port="8080" protocol="HTTP/1.1"
               compression="on" ...
                />

答案 1 :(得分:0)

GZip压缩

压缩响应的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中有三种方法可以做到这一点。

  1. 在Web服务器层
  2. 在应用程序容器层
  3. 门户网站实例层
  4. 这是一个有序列表。在Web服务器级别(使用mod_deflate或其他模块)进行压缩通常是最佳性能解决方案。压缩servlet容器是平均性能第二好的。最后,您可以在Liferay门户网站上的portal.propertiesportal-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

    实现的最慢压缩