栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Apache mod_deflate压缩模块bug解决方法

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Apache mod_deflate压缩模块bug解决方法

Apahce使用mod_deflate压缩模块,客户端(如浏览器)每次都会去服务器取数据(ps:Expires没有过期等情况下),即http请求头的状态码永远为200,而不会访回 304 Not Modified。

304 Not Modified?

如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304响应禁止包含消息体(会节省带宽和开销),因此始终以消息头后的第一个空行结尾。

问题

F5刷新,状态永远200,如下图:

这是Apahce本身的一个bug。Apache同时使用gzip压缩和缓存,etag名字会自动变成“******-gzip”,当存在gzip时就会出现问题。

解决方法

如果使用了《OneinStack》和《lnmp一键安装包》(ps:最新下载的已解决这个问题)选择安装了lamp模式,将会自动打开的压缩功能,需要通过如下方法解决此问题:

将文件/usr/local/apache/conf/httpd.conf最后几行将:

    ServerTokens ProductOnly
    ServerSignature Off
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
    DeflateCompressionLevel 6
    SetOutputFilter DEFLATE
    Include conf/vhost/*.conf

替换为:

    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
    RequestHeader edit "If-None-Match" "^(.*)-gzip(.*)$" "$1$2"
    Header edit "ETag" "^(.*)-gzip(.*)$" "$1$2"
    
    
    DeflateCompressionLevel 6
    SetOutputFilter DEFLATE
    
    
    
    
    ServerTokens ProductOnly
    ServerSignature Off
    Include conf/vhost/*.conf

重启apache:

    service httpd restart
测试

F5刷新:

Mon Jan 18 13:22:06 CST 2016

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/10170.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号