背景
一般来说,在虚拟主机、VPS上运行的网站,都会默认开启 Gzip 压缩。但由谷歌开发的 Brotli 压缩算法,在压缩效率上高于其他的压缩算法。
本文介绍如何在 OneinStack 的 LNMP 配置中,开启 Brotli 压缩算法。
手动编译 Brotli
首先我们登入 SSH,进入到 oneinstack/src 文件夹:
cd ~/oneinstack/src
从 Github 上 Clone Brotli 项目到本地,并初始化:
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init
然后在 oneinstack/src 目录内,解压出 nginx、pcre、openssl 这几个程序的安装文件:
tar xzf nginx-1.22.0.tar.gz
tar xzf pcre-8.45.tar.gz
tar xzf openssl-1.1.1q.tar.gz
其中各个程序的文件名可能不一样,因为 OneinStack 会从官网、Github 下载最新的安装文件,版本不一样所以需要自己更改命令,也可以使用tab自动补全。
然后进入解压后的 nginx-1.22.0 文件夹,首先查看当前 nginx 的编译参数:
cd nginx-1.22.0
nginx -V
记录下 configure arguments: 后方输出的结果
在后面加上 –add-module=../ngx_brotli,然后运行:
./configure [刚刚复制的参数] --add-module=../ngx_brotli
make #编译
mv /usr/local/nginx/sbin/nginx{,_`date +%F`} #备份nginx
cp objs/nginx /usr/local/nginx/sbin
nginx -V
如果屏幕输出的最后带有 ngx_brotli,那么已经编译成功!🎉
Nginx 配置
为了避免每添加一个网站便要添加一次 Brotli 配置,在 nginx.conf 文件内配置。由于我使用的是 Oneinstack 环境,所以打开 /usr/local/nginx/conf/nginx.conf 文件进行这几行内容的注释即可:
#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;
如果你使用的是其他的 Nginx 环境,复制以上的内容粘贴即可,最后记得重启 Nginx 程序。