• 欢迎访问圣洁的白莲!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

博客开启Brotli压缩,可提高网站加载速度

WordPress 菜根譚 4个月前 (07-22) 89次浏览 未收录 1个评论 扫描二维码
文章目录[隐藏]

前言

博主在网上闲逛的时候,偶然间看到Rat’s Blog博主给自己的博客开启Brotli压缩,一时兴致便给自己的博客也开启了Brotli功能。

说明:Brotli是Google推出的开源压缩算法,通过变种的LZ77算法、Huffman编码以及二阶文本建模等方式进行数据压缩,与其他压缩算法相比,它有着更高的压缩效率,性能也比我们目前常见的Gzip高17-25%,可以帮我们更高效的压缩网页中的各类文件大小及脚本,从而提高加载速度,提升网页浏览体验。

下载Brotli

cd /www/server
#下载brotli
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
#更新brotli
git submodule update --init

编译NGINX

1.查看nginx的安装位置

ps -elf | grep nginx

2.备份NGINX文件

cd /www/server/nginx/sbin/
cp nginx nginx.bak

3.查看NGINX版本信息

注意:这个命令是大写的V,如果小写v是不会显示模块的。

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 --add-module=/root/nginx-plugin-master

4.备份./configure文件

将configure arguments:后面的参数备份,放置意外。

5.重新编译

进入nginx源码目录,对nginx进行重新编译,操作之前请确认自己的nginx是编译模式安装的,而不是宝塔面板的极速安装

cd /www/server/nginx/src

编译参数:

在nginx的编译参数后面加上–add-module=/www/server/ngx_brotli

./configure --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 --add-module=/root/nginx-plugin-master --add-module=/www/server/ngx_brotli

译 nginx (注意:如果原本已经有 nginx, 只执行 make 即可,make install 会覆盖掉你的 nginx.conf),输入make,开始进行编译。

make

6.停止NGINX

systemctl stop nginx

7.替换nginx文件

完成后将系统当前使用中的nginx二进制文件替换为刚刚编译好的nginx文件,替换后重启nginx使新编译nginx生效。

删除原来的nginx文件

rm -rf /www/server/nginx/sbin/nginx

复制重新编译的nginx文件

cp /www/server/nginx/src/objs/nginx /www/server/nginx/sbin/

8.启动NGINX

systemctl start nginx

再次使用nginx -V 命令查看编译的参数:

nginx -V

返回参数后面有–add-module=/www/server/ngx_brotli就编译成功了。

博客开启Brotli压缩,可提高网站加载速度

 

开启Brotli压缩

1.修改HTTP配置

在nginx配置的http段内添加一下内容用来启用Brotli压缩。

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参数详解:

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

2.重载配置

检查配置文件

nginx -t
# 出现一下结果,说明配置正确没有问题。
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful

重载配置文件

nginx -s reload

查看是否开启成功

在content-enconding字段看到br,说明功能开启成功。

博客开启Brotli压缩,可提高网站加载速度

后记

本次给博客开启Brotli参考https://www.moerats.com/archives/954/,感谢大神分享,本次教程如果错误之处,欢迎指出。

浩瀚学海,虔诚分享!

 

 

 


圣洁的白莲 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:博客开启Brotli压缩,可提高网站加载速度
喜欢 (3)
[]
分享 (0)
关于作者:
浩瀚学海,虔诚分享!

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. 非技术的路过。
    repostone2019-07-25 16:39