资讯专栏INFORMATION COLUMN

Nginx配置Brotli压缩

YacaToy / 2030人阅读

摘要:软件工程师在年月发布了包含通用无损数据压缩的增强版本,特别侧重于压缩。与常见的通用压缩算法不同,使用一个预定义的千字节字典。

在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叔区块链」 - 专注于区块链技术学习

博客地址:http://www.jouypub.com
简书主页:https://www.jianshu.com/u/756c9c8ae984
segmentfault主页:https://segmentfault.com/blog/jouypub
腾讯云主页:https://cloud.tencent.com/developer/column/72548

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40300.html

相关文章

  • 把Gzip换成BrotliNginx配置教程

    摘要:软件工程师在年月发布了包含通用无损数据压缩的增强版本,特别侧重于压缩。与常见的通用压缩算法不同,使用一个预定义的千字节字典。另外,把换成,真的可以感受到速度明显提升了。。。 内容协商 在介绍 Brotli 之前,先说一下 HTTP 内容协商 有时候,同一个 URL 可以提供多份不同的文档,这就要求服务端和客户端之间有一个选择最合适版本的机制,这就是内容协商 HTTP 的内容协商的其中一...

    lieeps 评论0 收藏0
  • 11 个 Nginx 参数性能优化工作

    摘要:配置如下指令是设定的工作模式及连接数上限。指令用来指定的工作模式。该参数默认是,建议开启。配置进程的最大打开文件数调整配置进程的最大打开文件数,这个控制连接数的参数为。但副作用是资源更新可能无法及时。 工作上,需要配置 Nginx,要投入生产使用,做了一点优化工作,加上以前也经常折腾 Nginx,故记下一些优化工作。 优化 Nginx 进程数量 配置参数如下: worker_proce...

    zebrayoung 评论0 收藏0
  • Nginx 基于 Let's Engypt 免费证书打造快速安全的 HTTPS 网站

    摘要:确保预先安装了官方的包申请证书官方的在系统上有各种依赖问题,各种尝试后放弃了。网上搜索资料后,使用了小巧的。 我大EOI的官网正式上线啦!为了打造公司第一个正式上线的公开站点,我们着实费了不少心思,其中之一就是如何把它搞得快速安全。我们用 Nuxt 做了 SSR,而且启用了 PWA module,Lighthouse 得分在 90 分以上。官网在保证 IE9 兼容性的基础上,还使用了诸...

    lidashuang 评论0 收藏0
  • 启用 Brotli 压缩算法,对比 Gzip 压缩 CDN 流量再减少 20%

    摘要:目前又拍云已支持压缩算法,通过对新压缩算法的支持将压缩率提升,并且帮助降低移动设备的电池使用量,并达到省电延长电池使用寿命的目的。当客户端同时支持两种算法时,又拍云会优先响应版本文件。 Google 认为互联网用户的时间是宝贵的,他们的时间不应该消耗在漫长的网页加载中,因此在 2015 年 9 月 Google 推出了无损压缩算法 Brotli。Brotli 通过变种的 LZ77 算法...

    番茄西红柿 评论0 收藏0
  • 启用 Brotli 压缩算法,对比 Gzip 压缩 CDN 流量再减少 20%

    摘要:目前又拍云已支持压缩算法,通过对新压缩算法的支持将压缩率提升,并且帮助降低移动设备的电池使用量,并达到省电延长电池使用寿命的目的。当客户端同时支持两种算法时,又拍云会优先响应版本文件。 Google 认为互联网用户的时间是宝贵的,他们的时间不应该消耗在漫长的网页加载中,因此在 2015 年 9 月 Google 推出了无损压缩算法 Brotli。Brotli 通过变种的 LZ77 算法...

    SimonMa 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<