什么是Brotli压缩?
Brotli最初发布于2015年,用于网络字体的离线压缩。guge软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。
与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。
使用brotli取代deflate来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。
兼容性
Brotli 是一种全新的数据格式,可以提供比 Zopfli 高 20-26% 的压缩比
并且和GZIP是可以共存的,其压缩可以支持兼容大多的浏览器
下面我会在linux宝塔环境给大家讲解怎么安装使用Brotli压缩
安装准备
首先你得有linux宝塔面板,然后环境是Nginx的网站环境
这里推荐使用Nginx1.16来安装Brotli压缩
然后是Nginx千万不能是极速安装的,一定要是编译安装的
因为在极速安装的没有详细的配置文件
安装命令
然后是Linux命令,这里建议一个一个输入进去
等等前面一个好了在输入进去
1、安装libbrotli
cd /www/server
git clone https://github.com/bagder/libbrotli
cd libbrotli
./autogen.sh
./configure
make && make install
2、下载ngx_brotli模块及其依赖:
cd /www/server
#下载brotli
git clone https://github.com/guge/ngx_brotli.git
cd ngx_brotli
#更新brotli
git submodule update --init
3、查看版本信息
nginx -V
输入完以后出现下面信息,红色的就是版本信息了
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.1.1b 26 Feb 2019
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=pcre-8.42 --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc
配置文件重新编译Nginx
下面进入linux面板点侧栏的文件
在文件路径输入/www/server/panel/install/
然后回车,即可进入文件路径
找到nginx.sh文件,点击编辑
进入编辑界面 搜索(Ctrl+t) Install_Configure()
找出你安装nginx版本号
在下面一行的./configure 最后面添加 --add-module=/www/server/ngx_brotli (不要忘记前面英文空格,可以拖到下面条道后面加)
(当然可以在每一个版本后面都加)
保存后返回linux控制台
根据安装的Nginx版本,将后面数字改为1.10、1.12、1.14、1.15、1.17、1.8相对应的nginx版本即可。
sh /www/server/panel/install/nginx.sh install 1.16
等待完成后,进行下一步操作
启用Brotili压缩
点击宝塔面板左侧软件商店-Nginx设置-配置修改,在http段内添加以下内容来启用Brotli压缩。
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
如果保存成功,说明已经完成了,当然你可以对于Brotli压缩进行配置