X
返回

Nginx开启Brotli

文章信息:
  • 分类:服务器部署
  • 阅读量:3306
  • 创建时间:2022-11-19
  • 更新时间:2年前

Brotli是一种通用无损压缩算法,在Nginx模块中和Gzip都是压缩文件的一种方式,不同的是Brotli专为Web设计,对于Web数据压缩效率更高,甚至压缩效果比Gzip更小。Brotli配置和Gzip配置可以共存,无需删除原有的配置

注意:如果你使用的是Ubuntu apt安装的Nginx,那么你需要通过编译安装Nginx的方式替换apt安装的Nginx。因为apt安装的Nginx无法自定编译安装模块

官方文档

安装 ngx_brotli

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

获取配置参数

# 注意这里的V要大写,小写的V显示的是版本号
nginx -V

安装ngx_brotli模块

进入Nginx目录:

cd /usr/local/src/nginx-1.**.**

添加模块:

# 这里的 configure arguments 是上面运行的Nginx -V获取到的configure arguments: 后面的内容
./configure [configure arguments] --add-module=/usr/local/src/ngx_brotli

编译安装:

make install

检查安装:

nginx -V

Nginx.conf 添加配置

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';


    # 启用或禁用检查扩展名为.br 的预压缩文件是否存在。
    brotli_static on;
    # 启用压缩
    brotli on;
    # 压缩的文件类型
    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_comp_level 6;
    # 允许压缩的最小大小
    brotli_min_length 20;

检查Nginx.conf配置:

nginx -t

重启Nginx服务:

nginx -s reload

验证是否开启Brotli

使用命令查看或者在浏览器用Network查看

运行命令:

curl -H 'Accept-Encoding: br' -I http://localhost
HTTP/1.1 200 OK
Server: nginx/1.23.2
Date: Fri, 18 Nov 2022 17:53:48 GMT
Content-Type: text/html
Last-Modified: Wed, 16 Nov 2022 16:30:56 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: W/"63751040-124b"
Content-Encoding: br

Content-Encoding:br 证明内容正确的被Brotli压缩
ETag:W/"63751040-124b" 前面的W代表是服务端压缩,没有就是前端打包压缩

评论/留言