很多人接触第三方时只停留在基础操作,真正影响效率的往往是先确保新 Nginx 编译含 Brotli 支持、升级后正确加载模块并启用压缩、用 USR2/WINCH/QUIT 完成零中断切换这些细节。先把使用场景分清楚,再按功能选择做法,能少走不少弯路。
先看原文给出的关键信息:平滑升级Nginx并保留Brotli需重新编译集成ngx_brotli模块,用USR2/WINCH/QUIT信号热切换,并在nginx.conf中显式加载模块、启用brotli且关闭gzip;要在升级 Nginx 版本时平滑保留 Brotli 压缩能力,关键不是“保留模块”,而是在新二进制中重新集成 ngx_brotli 模块,并通过信号机制完成热切换。;Brotli 不是运行时插件,它依赖 libbrotli 和动态模块支持,必须随 Nginx 一起编译。继续往下处理时,重点放在这些条件上:直接复制旧模块.so 文件或跳过编译流程会导致加载失败或崩溃。;先确保新 Nginx 编译含 Brotli 支持 升级前不单独安装模块,而是在编译新版本时一并集成: 确认已安装 libbrotli 开发库:执行 sudo ldconfig -p;在 http 块中配置 Brotli(留意关闭 gzip 冲突): brotli on。收尾检查时,再把这些细节对上:brotli_comp_level 4;brotli_types text/plain text/css application/javascript application/json;执行 nginx -t 验证语法,再发信号升级 用 USR2/WINCH/QUIT 完成零中断切换 仅替换二进制文件不等于平滑升级。