MEAN栈搭配cPanel LiteSpeed服务器gzip压缩不生效问题求助
问题根源
你使用的LiteSpeed服务器对Apache的mod_deflate规则兼容性有限,且现有.htaccess配置存在多处重复、冲突的压缩规则,同时cPanel全局压缩设置和PHP zlib压缩可能存在优先级冲突,最终导致压缩功能异常。
可行解决步骤
- 清理.htaccess中所有冗余冲突的压缩规则
删除现有文件中所有<IfModule mod_deflate.c>相关的块,替换为如下LiteSpeed兼容的压缩规则,仅对可压缩的文本类资源开启压缩,避免对已压缩的二进制资源重复操作:
<IfModule mod_mime.c> AddType application/x-javascript .js AddType text/css .css </IfModule> SetOutputFilter DEFLATE # 排除无需压缩的已压缩格式 SetEnvIfNoCase Request_URI \.(?:rar|zip|7z|gz|bz2)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(?:gif|jpg|jpeg|png|webp|avif)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(?:avi|mov|mp4|mkv|wmv|mp3|flac|wav)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(?:woff|woff2|eot|ttf|otf)$ no-gzip dont-vary <IfModule mod_headers.c> Header append Vary User-Agent env=!dont-vary </IfModule> # 仅对可压缩的文本类格式开启压缩 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE image/svg+xml
- 调整cPanel压缩配置
进入cPanel的「优化网站」功能,不要选择「压缩所有内容」,改为选择「压缩以下MIME类型」,填入如下内容,避免全局压缩和.htaccess规则冲突:
text/plain text/html text/xml text/css text/javascript application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript image/svg+xml
- 排查zlib压缩冲突
PHP的zlib.output_compression仅对PHP动态输出的内容生效,不会作用于js、css、html等静态资源,如果同时开启LiteSpeed静态压缩和zlib压缩可能出现双重压缩或规则失效,先到MultiPHP INI Editor中将zlib.output_compression设置为Off,测试静态资源压缩是否恢复正常,确认静态资源正常后再按需开启zlib压缩动态内容。 - 清空缓存后测试
LiteSpeed默认会缓存静态资源的压缩状态,修改规则后需要到cPanel中找到LiteSpeed缓存管理功能,清空所有站点缓存,同时清空浏览器本地缓存后再进行检测。 - 额外排查项
如果站点使用了CDN服务,需要确认CDN是否开启了自动压缩功能,且CDN回源请求是否携带了Accept-Encoding: gzip请求头,避免CDN回源时请求未压缩内容,再返回给用户导致检测异常。
如果执行完以上步骤依然无效,可要求服务器提供商确认服务器全局是否禁用了用户自定义的deflate压缩规则,或LiteSpeed是否开启了mod_deflate兼容支持。
内容的提问来源于stack exchange,提问作者Yandy
相关产品推荐
相关产品推荐

