大家在做网站优化的过程中,基本都知道开启Gzip压缩,因为开启Gzip压缩后,文件被压缩了,然后网站的访问及下载也加快了,因此想要网站访问快一点的话Gzip压缩是必须开启的。但是大家除了Gzip压缩有没有听说其他压缩算法?今天it168资讯就给大家介绍一下Brotli压缩,比Gzip压缩更厉害,开启后可以极大加快网站的访问速度。
还没安装BT宝塔面板?点击如下安装:
宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取
之前it168资讯也介绍了不少网站优化加快网站访问速度的文章,比如
- BT宝塔面版通过NGINX开启TLSV1.3网站加速
- WordPress使用又拍云CDN云存储网站加速及图片Webp优化全教程
- 利用BT宝塔面版反向代理/负载均衡/自建CDN加速海外网站访问
- CommonWP插件-使用免费CDN加速JS及CSS文件让海外网站访问更快
- 利用Cachify插件实现网站加速-WordPress必备插件之一
今天it168资讯再介绍一下BT宝塔面版开启Brotli压缩加速网站访问详细图文教程。
一、什么是Brotli压缩
Google 在 2015 年 9 月推出了无损压缩算法 Brotli。Brotli 通过变种的 LZ77 算法、Huffman 编码以及二阶文本建模等方式进行数据压缩,与其他压缩算法相比,它有着更高的压缩效率。
Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。
与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。
使用brotli替换deflate来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。使用Brotli进行流压缩的内容编码类型已被提议使用“br”。
二、Brotli压缩和Gzip压缩哪个好
其实很多人会问,那么Brotli压缩和Gzip压缩哪个好?这里it168资讯先科普一下Gzip压缩
Gzip 基于 DEFLATE 算法,它是 LZ77 和霍夫曼编码的组合,最早用于 UNIX 系统的文件压缩。HTTP 协议上的 Gzip 编码是一种用来进 Web 应用程序性能的技术,Web 服务器和客户端(浏览器)必须共同支持 Gzip,当下主流的浏览器都是支持 Gzip 压缩,包括 IE6、IE7、IE8、IE9、FireFox、Google Chrome、Opera 等。
而Brotli 压缩算法具有多个特点,最典型的是以下 3 个:
- 针对常见的 Web 资源内容,Brotli 的性能相比 Gzip 提高了 17-25%;
- 当 Brotli 压缩级别为 1 时,压缩率比 Gzip 压缩等级为 9(最高)时还要高;
- 在处理不同 HTML 文档时,Brotli 依然能够提供非常高的压缩率。
除了 IE 和 Opera Mini 之外,几乎所有的主流浏览器都已支持 Brotli 算法。
当Brotli压缩和Gzip压缩算法都是默认值的情况下,对比测试如下:
原始大小 | Gzip压缩 | Brotli压缩 | |
HTML文件 | 88.20KB | 25.17KB | 21.45KB |
CSS文件 | 28KB | 7.52KB | 5.73KB |
JS文件 | 274KB | 99.37KB | 76.25KB |
经过以上对比,我们看到使用Brotli压缩相比较使用Gzip压缩的,体积至少都减少了25-30%,说明压缩率更高。这就更加坚定了我们要开启Brotli压缩的决心。
三、如何开启Brotli压缩
终于到了说正事的时候,网站该如何开启Brotli压缩呢?
这里以BT面版为例,因为很多时候我们默认的环境都是LNMP,其实也就是L指Linux,N指Nginx,M一般指MySQL,P一般指PHP。这里我们主要说的是Nginx,因为Nginx默认是没有包含Brotli压缩模块的,而且BT宝塔面版里也没有相应的设置选项,因此要编译Nginx来开启Brotli压缩。
1、通过SSH登录主机
输入如下命令进入server文件夹内:
cd /www/server
2、下载brotli
git clone https://github.com/google/ngx_brotli.git
3、进入文件夹后更新brotli
cd ngx_brotli
git submodule update --init
4、修改Nginx文件
有的人喜欢用命令操作,这里it168资讯给大家介绍用BT宝塔面版后台操作
登录BT宝塔面版后台,打开左边面版菜单文件,然后进入如下目录
先删除nginx.sh文件
再重新从BT官方下载新的nginx.sh文件,在URL地址里面填入:
http://download.bt.cn/install/0/nginx.sh
一般几秒钟就下好了。
接下来点击nginx.sh文件右边的编辑,修改nginx.sh文件
可以直接查找代码:
./configure --user=www --group=www --prefix=${Setup_Path} ${ENABLE_LUA}
然后在这代码后面加入如下代码后保存(注意两边空格)
--add-module=/www/server/ngx_brotli
保存后的效果如下:
5、编译安装nginx
首先在编译前我们要检查自己原来的nginx版本,输入命令检查
nginx -v
一般会返回相应的代码,我们可以知道原来的Nginx的版本是多少,比如代码返回的是Nginx 1.15.10,那么我们就知道原来安装的的版本是Nginx 1.15.10
注意:编译安装需要时间,虽然不是很长,但是期间会导致你原来上面的网站无法访问,因此建议先备份,同时选择合适的时间操作。
然后登陆SSH,输入如下命令进行编译安装
sh /www/server/panel/install/nginx.sh install 1.15.10
如果以上你的Nginx的版本是1.17,那么以上你的代码最后面的数字要改为1.17
回车编译后,我们就开始等。编译安装的时间主要根据你的主机配置而定。像it168资讯的主机大概花了5分钟不到。
编译完成后,输入nginx -v命令再次检查brotli模块是否编译安装成功
如果已经出现了ngx_brotli说明编译成功
6、在Nginx里开启brotli
到了最后一步,我们需要在Nginx里开启brotli,先登录BT宝塔面版,选择软件商店-已安装
我们会发现我们原来的Nginx已经变成了Nginx -Tengine2.2.4(2.3.2)
有的人会问Tengine是什么
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
简单来说比原来的Nginx性能更好。其余的自行百度。
点击Nginx -Tengine2.2.4(2.3.2)的设置,选择配置修改
在Gzip的代码后面加入如下代码:
brotli on;
brotli_comp_level 6;
brotli_min_length 512;
brotli_types text/plain text/javascript text/css text/xml text/x-component application/javascript application/x-javascript application/xml application/json application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype;
brotli_static always;
以上的代码可以参考实际需要下面进行一些微调,如果没有需求就可以直接用上面的代码进行保存即可。
brotli on; #启用
brotli_comp_level 6; #压缩等级,默认6,最高11,太高的压缩水平可能需要更多的CPU
brotli_buffers 16 8k; #请求缓冲区的数量和大小
brotli_min_length 20; #指定压缩数据的最小长度,只有大于或等于最小长度才会对其压缩。这里指定20字节
brotli_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml text/html application/json image/svg application/font-woff application/vnd.ms-fontobject application/vnd.apple.mpegurl image/x-icon image/jpeg image/gif image/png image/bmp; #指定允许进行压缩类型
brotli_static always; #是否允许查找预处理好的、以.br结尾的压缩文件,可选值为on、off、always
brotli_window 512k; #窗口值,默认值为512k
效果如下图
保存后,重启Nginx即可。
如果开启了反向代理的话,那么源站和反代站都要编译安装brotli,并开启brotli。
四、如何检测Brotli压缩是否开启成功
接下来我们如何验证brotli是否开启成功呢?
用谷歌浏览器打开相应的站点。点击右键后,点击检查,查看标头是否有br字样,比如下面:
以上就是it168资讯介绍的BT宝塔面版开启Brotli压缩加速网站访问详细图文教程,这样可以Gzip和Brotli共存,老版本的浏览器自动用Gzip压缩。
还没安装BT宝塔面板?点击如下安装: