Nginx configure检测到http_gzip_module disabled时,根本原因是zlib-devel开发包缺失或未被正确识别;需确认zlib.h头文件存在、pkg-config能定位zlib、安装对应系统版本的zlib-devel包(如CentOS用zlib-devel,Ubuntu用zlib1g-dev),必要时手动指定--with-zlib路径。

直接看 configure 输出末尾的模块 summary,如果 http_gzip_module 显示为 “disabled” 且提示 “the HTTP gzip module requires the zlib library”,基本就是 zlib-devel 缺失或未被正确识别。
检查 zlib 开发文件是否真实存在
只装 zlib 运行库(如 zlib1g 或 zlib)没用,必须有头文件和链接支持:
- 运行 ls /usr/include/zlib.h —— 应能列出该文件,否则头文件缺失
- 运行 pkg-config --exists zlib && echo "OK" || echo "Missing" —— 返回 OK 才说明 pkg-config 能定位 zlib 开发环境
- 检查静态库:ls /usr/lib64/libz.a /usr/lib/x86_64-linux-gnu/libz.a 2>/dev/null(CentOS/RHEL 常在 /usr/lib64,Ubuntu/Debian 多在 /usr/lib/x86_64-linux-gnu)
按系统安装正确的-devel包
包名不通用,装错版本或包名会导致 configure 找不到:
- Ubuntu/Debian:sudo apt update && sudo apt install zlib1g-dev
- CentOS/RHEL 7–8:sudo yum install zlib-devel
- Rocky/AlmaLinux/CentOS 9+ 或 Fedora:sudo dnf install zlib-devel
- 银河麒麟 V10(离线):需匹配系统架构下载 zlib-devel-*.rpm 及其依赖(如 glibc-devel),再用 rpm -ivh 顺序安装
确认 configure 是否真正启用 gzip 模块
重新运行 configure 后,重点看输出末尾的 summary 区域:
- 找到类似 checking for zlib library ... found 的行
- 确认 http_gzip_module 后面是 enabled,不是 disabled
- 若仍 disabled,打开当前目录下的 config.log,搜索 zlib 或 deflateInit2_ —— 如果报符号未定义,可能是 zlib 版本太低或链接路径错误
手动指定 zlib 路径(仅限自编译 zlib 场景)
如果你自己源码安装了 zlib(比如装到 /usr/local/zlib),configure 默认找不到,必须显式指定:
- 先确保已执行:./configure --prefix=/usr/local/zlib && make && sudo make install
- 再配置 Nginx:./configure --with-zlib=/usr/local/zlib [其他参数]
- 注意:--with-zlib= 后跟的是源码解压目录路径(不是安装前的 tar 包路径),也不是安装后的 bin 目录


















