阿里云宝塔面板nginx安装ngx_brotli模块

阿里云宝塔面板nginx安装ngx_brotli模块

系统运维Git开源网2020-03-14 13:15:42155A+A-

关于Britli模块,在前面的文章使用Brotli提高网站访问速度中有介绍,Britli模块相比Gzip性能更好,有更高的压缩率。

nginx集成brotli模块的理由:

1.兼容性好,chrome49以上支持,覆盖国内chrome内核浏览器
2.可以与Gzip共存
3.更好的性能

4.针对html,css,js等静态文件,Brotli 的性能相比 Gzip 提高了 17-25%;

5.当 Brotli 压缩级别为 1 时,压缩率比 Gzip 压缩等级为 9(最高)时还要高;

6.在处理不同 HTML 文档时,Brotli 依然能够提供非常高的压缩率。

如何编译安装ngx_brotli?这里宝塔版本是7.1.1

1、下载brotli

SSH软件连接到服务器,然后执行如下命令,以下命令是把ngx_brotli放到了 /www/server 路径中。

cd /www/server
git clone https://github.com/google/ngx_brotli
cd ngx_brotli && git submodule update --init

这样我们编译时候的路径就是【/www/server/ngx_brotli 】

2、更新nginx.sh文件

根据需要更新nginx.sh文件,宝塔面板找到路径:/www/server/panel/install,找到nginx.sh文件,先备份一下,然后删除它。

更新nginx.sh命令:

cd /www/server/panel/install
rm -f nginx.sh #这是个是删除ngnix.sh文件
wget http://download.bt.cn/install/0/nginx.sh

3、修改nginx.sh文件配制

打开nginx.sh文件,在Install_Configure()下方,Install_Nginx()前面,约246行找到增加代码  --add-module=/www/server/ngx_brotli  。由于前面ngx_brotli放到了 /www/server 路径中,这里add-module增加的是/www/server/ngx_brotli

另外这里也配置了ngx_pagespeed,所以有ngx_pagespeed的内容。关于ngx_pagespeed的安装可查看前面的文章:阿里云宝塔面板nginx安装pagespeed模块,这里就不多说了

如下图:

baota_nginx_sh.png

4编译安装Nginx

安装前卸载旧版本,然后编译安装,可以在宝塔软件管理中安装,也可以在SSH中执行命令。等待完成。

sh /www/server/panel/install/nginx.sh install 1.17

注意:如果有错误

(1)可以更新gcc,命令:yum -y install gcc gcc-c++ autoconf automake

(2)头文件模块丢失,更新yum即可,执行命令“ yum update ”。

效果图:

5、检查brotli是否已经编译成功,执行命令:nginx -V ,出现ngx_brotli表示已经安装成功了。

install-2.png

6、配置Brotli压缩

在网站的配置文件中添加代码。

bt-panel-ngx_brotli-min.png

配置代码如下:

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;

解释:

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

ngx-brotli-bt-nginx-min-1.png

Brotli与GZIP可以同时共存,当同时开启两种压缩算法时,Brotli 压缩等级优先级高于 Gzip。如果浏览器不支持brotli会用gzip方式压缩,所以这个东东值得你拥有。

如果服务端支持Brotli算法,则会返回以下的响应头:Content-Encoding: br
ps:
需要注意的是,只有在HTTPS的情况下,浏览器才会发送 br 这个Accept-Encoding.


参考连接:

https://blog.slogra.com/post-724.html

https://www.mf8.biz/ngx_brotli/

https://www.daniao.org/7265.html

https://www.bt.cn/bbs/thread-19179-1-3.html

https://www.jianshu.com/p/fab8810ccc74

点击这里复制本文地址 以上内容由Git开源网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

Git开源网_git开源代码资源网_git开源博客 © All Rights Reserved.  
文章中出现的商标及图像版权属于其合法持有人,只供传递信息之用,非商务用途。本站所上传资源,只用于交流学习所用。本站资源收集于网络以及网友投稿,其版权归原创者所有,如有侵害到你的权益,或有不妥之处,请联系我们删除,敬请谅解。Email:admin#gitoscc.com(#更换成@)
Copyright © Git开源网 All rights reserved. 黑ICP备18006154号-1 由ZBlog驱动

网站管理