Ingress-nginx 中开启 Brotili 压缩算法

Brotli是Google开发的一种压缩方法,于2015年发布。我们常用的压缩算法是 gzip(Ingress-nginx也是默认使用gzip),据说brotli要比gzip高出20%至30%的压缩率。

ingress-nginx 配置

默认的压缩算法是gzip,压缩级别为1,如需要启用brotli,需要配置以下三个参数:

  • enable-brotli: truefalse,是否启用brotli压缩算法
  • brotli-level: 压缩级别,范围1~11,默认为4,级别越高,越消耗CPU性能。
  • brotli-types: 由brotli即时压缩的MIME类型

应用修改

查看当前configmap资源

kubectl get cm ingress-nginx-configuration -n my-namespace -o yaml

将configmap资源导出到configmap.yaml文件,编辑configmap.yaml,添加如下内容:

apiVersion: v1
kind: ConfigMap
metadata:
  name: ingress-nginx-configuration
data:
  enable-brotli: "true"
  brotli-level: "6"
  brotli-types: "text/xml image/svg+xml application/x-font-ttf image/vnd.microsoft.icon application/x-font-opentype application/json font/eot application/vnd.ms-fontobject application/javascript font/otf application/xml application/xhtml+xml text/javascript application/x-javascript text/plain application/x-font-truetype application/xml+rss image/x-icon font/opentype text/css image/x-win-bitmap"

更新资源文件

kubectl apply -f configmap.yaml -n my-namespace

配置参考

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/