网站开启Gzip压缩加速

Gzip压缩是提升网站加载速度最直接的优化手段之一。原理是服务器把HTML/CSS/JS等文本文件压缩后再传给浏览器,浏览器解压后渲染。实测文本文件体积能减少60%-80%,效果立竿见影。 确认当前是否开启Gzip 用curl检查响应头:
curl -I -H "Accept-Encoding: gzip" https://yourdomain.com
如果返回头里有`Content-Encoding: gzip`,说明已经开了。没有的话按下面配置。 Nginx配置Gzip 编辑nginx配置文件,通常在`/etc/nginx/nginx.conf`或站点配置里:
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_min_length 256;
gzip_types
    text/plain
    text/css
    text/javascript
    application/javascript
    application/json
    application/xml
    image/svg+xml
    font/ttf
    font/otf;
`gzip_comp_level`建议6,压缩比和CPU开销平衡点。低于6压缩率不够,高于6CPU消耗翻倍但体积只再降一点。`gzip_min_length 256` 小于256字节的文件不压缩,因为压缩后反而更大。 检查配置语法:
nginx -t
重载生效:
nginx -s reload
Apache配置Gzip Apache用mod_deflate模块。确认模块已启用:
a2enmod deflate
在`.htaccess`或虚拟主机配置里加:
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript application/json application/xml image/svg+xml
    DeflateCompressionLevel 6
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
重启Apache:
systemctl restart apache2
CDN层Gzip 如果用了CDN(比如雨云CDN),CDN节点也会做一次压缩。雨云的CDN默认开启Gzip,你只需要在源站配好,CDN会自动回源取压缩后的内容。雨云的节点覆盖广,配合Gzip能让首字节时间再降几十毫秒,性价比很高。 验证压缩效果 用curl看压缩前后大小对比:
# 不带压缩请求
curl -s -o /dev/null -w "%{size_download}" https://yourdomain.com/style.css

# 带压缩请求
curl -s -o /dev/null -w "%{size_download}" -H "Accept-Encoding: gzip" https://yourdomain.com/style.css
或者在线工具,比如GTmetrix,会直接显示压缩节省的百分比。 常见坑 1. 图片不要开Gzip。jpg/png/webp本身就是压缩格式,再压一遍浪费CPU,体积基本不变。`gzip_types`里别加image/。 2. 动态接口注意。如果API返回已经压缩过的数据(比如某些框架自带的压缩中间件),nginx再压一次会导致双重压缩,浏览器解不出来。用`gzip_proxied`控制,对后端已压缩的请求跳过。 3. 浏览器兼容。所有现代浏览器都支持Gzip,IE6+都支持。不用纠结。 4. 大文件注意内存。Gzip压缩大文件(超过几MB)时nginx会占用较多内存。如果你服务器配置低,`gzip_comp_level`降到4,或者对超过10MB的文件跳过压缩。 监控压缩效果 在nginx日志里加`$http_accept_encoding`字段,能看出哪些请求带了压缩头。配合`$gzip_ratio`可以看到压缩比:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_accept_encoding" $gzip_ratio';
总结操作清单 – 确认服务器软件(nginx/apache) – 配置gzip参数,重点配好`gzip_types`和`gzip_comp_level` – 重启服务 – curl验证响应头 – 检查CDN是否开启(用雨云的话默认开) – 监控日志确认压缩比 Gzip配置一次,长期受益。尤其网站有大量CSS/JS库的时候,压缩后加载速度提升非常明显。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容