Nginx配置Brotli压缩

栏目: 服务器 · Nginx · 发布时间: 5年前

内容简介:在web应用中,为了节省流量,降低传输数据大小,提高传输效率,常用的压缩方式一般都是gzip,今天我们来介绍另外一种更高效的压缩方式brotli。Brotli 是基于LZ77算法的一个现代变体、霍夫曼编码和二阶上下文建模。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。

在web应用中,为了节省流量,降低传输数据大小,提高传输效率,常用的压缩方式一般都是gzip,今天我们来介绍另外一种更高效的压缩方式brotli。

Brotli 是基于LZ77算法的一个现代变体、霍夫曼编码和二阶上下文建模。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。

与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。

使用Brotli替换Deflate(gzip)来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。

浏览器支持情况

  • Mozilla Firefox在Firefox 44中实现Brotli。
  • Google Chrome从Chrome 49开始支持Brotli。
  • Opera从Opera 36开始支持Brotli。

以centos为例,配置Nginx使其支持brotli压缩

1、安装依赖

> yum groupinstall 'Development Tools'

2、安装libbrotli

cd /usr/local/src/
git clone https://github.com/bagder/libbrotli
cd libbrotli
./autogen.sh
./configure
make && make install

3、安装ngx_brotli

> cd /usr/local/src/
> git clone https://github.com/google/ngx_brotli
> cd ngx_brotli && git submodule update --init

4、下载Nginx

> cd /usr/local/src
> wget http://nginx.org/download/nginx-1.10.3.tar.gz
> tar -xvzf nginx-1.10.3.tar.gz

5、编译安装

> cd /usr/local/src/nginx-1.10.3
> ./configure --add-module=/usr/local/src/ngx_brotli

> make

# 如果是首次安装Nginx,执行make install;如果是升级,执行make upgrade
> make install

6、查看是否安装正常

> nginx -V
> nginx -t

7、配置brotli

在nginx.conf文件的http模块下新增以下内容

#Brotli Compression
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;

8、检查是否生效

打开网页,用chrome开发者 工具 调试,在Network一栏会发现有content-encoding:br,同时网络耗时也会明显减少。

欢迎订阅「K叔区块链」 - 专注于区块链技术学习

Nginx配置Brotli压缩

博客地址: http://www.jouypub.com

简书主页: https://www.jianshu.com/u/756c9c8ae984

segmentfault主页: https://segmentfault.com/blog/jouypub

腾讯云主页: https://cloud.tencent.com/developer/column/72548

以上所述就是小编给大家介绍的《Nginx配置Brotli压缩》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

解密搜索引擎技术实战

解密搜索引擎技术实战

罗刚 / 2011-6 / 69.80元

《解密搜索引擎技术实战-Lucene&Java精华版(附盘)》,本书主要包括总体介绍部分、爬虫部分、自然语言处理部分、全文检索部分以及相关案例分析。爬虫部分介绍了网页遍历方法和如何实现增量抓取,并介绍了从网页等各种格式的文档中提取主要内容的方法。自然语言处理部分从统计机器学习的原理出发,包括了中文分词与词性标注的理论与实现以及在搜索引擎中的实用等细节,同时对文档排重、文本分类、自动聚类、句法分析树......一起来看看 《解密搜索引擎技术实战》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具