共计 2668 个字符,预计需要花费 7 分钟才能阅读完成。
众所周知,优化网站速度能有效提升网站的评分,而提升网站速度的最简单方法就是开启压缩。在优化 WordPress 速度 和 Core Web Vitals 分析与优化 也多次提到过 Gzip 压缩,本文就讲讲如何开启站点的 Gzip 压缩。
什么是 Gzip 压缩#
Gzip 是 GNU Zip 的缩写,是一种在将数据文件发送到用户浏览器之前对其进行压缩的技术,当数据传输到用户浏览器后,浏览器会自动解压缩并显示它们。
因此当网站开启 Gzip 压缩后,能大大减少数据的传输时间和客户端浏览器的下载时间。一般来说,开启 Gzip 压缩能减少 50 ~ 80% 左右的时间,由于其显著的效果,因此 Gzip 压缩是目前最流行的无损压缩方法。
网站开启 Gzip 压缩很简单,有些 Cache 插件的付费功能直接提供了 Gzip 压缩,但实际我们可以直接在服务器端配置来开启 Gzip 压缩,这样就不需要付费了,下面就来看看如何开启 Gzip 压缩吧!
Nginx 服务器开启 Gzip 压缩#
目前 Nginx 是最流行的 Web 服务器,编辑 Nginx 配置文件(一般为 /etc/nginx/nginx.conf
或在 /etc/nginx/conf.d
目录下,增加如下配置:
server {
# 其他配置已省略...
# gzip
gzip on; # 开启 gzip 压缩
gzip_vary on; # 在 http header 中添加 Vary: Accept-Encoding
gzip_min_length 1k; # 设置允许压缩的页面最小字节数
gzip_comp_level 6; # 压缩级别(1-9),越大压缩率越高,但会消耗更多 CPU 资源
gzip_buffers 32 8k; # 向系统申请 32 个缓存区域,每个区域大小为 8k
gzip_types # 进行压缩的文件类型
text/plain text/xml text/css text/javascript application/xml application/json application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/x-httpd-php application/x-font-ttf application/vnd.ms-fontobject image/svg+xml font/opentype font/ttf font/eot font/otf;
gzip_disable "MSIE [1-6]\."; # 禁用 IE6 及以下版本的 gzip 功能
}
保存配置,执行如下命令重启 Nginx:
sudo nginx -t # 测试配置文件是否有语法错误
sudo systemctl restart nginx # 如果测试通过,重启 Nginx 服务
Apache 服务器开启 Gzip 压缩#
对于使用 Apache 服务器的网站,可修改网站根目录 wp-content 目录下的 .htaccess
文件,增加如下配置:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain text/xml text/css text/javascript application/xml application/json application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/x-httpd-php application/x-font-ttf application/vnd.ms-fontobject image/svg+xml font/opentype font/ttf font/eot font/otf
# Remove old browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
这种修改即时生效,无需重启服务器。
如果你拥有服务器权限,也可以直接修改服务器上的配置文件,通常为 /etc/httpd/conf/httpd.conf
或在 /etc/httpd/conf.d
目录下,配置内容如下:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain text/xml text/css text/javascript application/xml application/json application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/x-httpd-php application/x-font-ttf application/vnd.ms-fontobject image/svg+xml font/opentype font/ttf font/eot font/otf
# Remove old browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
修改后需重启 Apache 服务。
如何检查 Gzip 压缩是否已启用并正常工作#
我们可以通过在线工具检测来检测 Gzip 压缩是否已启用,推荐如下地址:
比如本网站开启 Gzip 压缩减少了 81% 的大小:
当然,你可以通过 Chrome 的开发者工具查看 Gzip 压缩是否启用:
- F12 打开 Chrome 开发者工具
- 切换到 Network 标签,点击 Header Options 中的 Response Headers,勾选 Content -Encoding
- 刷新页面,确认 Gzip 压缩是否启用
如果在线工具显示已开启 Gzip 压缩,但本地浏览器未显示,则应该是浏览器的缓存问题,可以尝试清除浏览器缓存再试试。
小结#
如之前所说,开启 Gzip 压缩是一个非常简单且能有效优化网站访问速度的方式,当然我们还有其他方式能优化网站,更多内容可以参考如下文章: