启用gzip_static模块需在configure时添加--with-http_gzip_static_module参数,并安装zlib、PCRE、OpenSSL依赖;编译后还需在配置中设置gzip_static on;且需存在同名.gz文件及匹配的gzip_types。

要在 Nginx 源码编译时启用 gzip_static 模块,核心是确保编译时加入 --with-http_gzip_static_module 参数,并提前装好依赖库。这不是配置开关,而是编译期决定的功能支持。
确认并安装必要依赖库
该模块依赖 zlib(用于解压 .gz 文件)、PCRE(正则匹配路径)和 OpenSSL(如需 HTTPS)。Ubuntu/Debian 系统执行:
sudo apt install build-essential libpcre3-dev zlib1g-dev libssl-dev
CentOS/RHEL 系统用:
sudo yum groupinstall "Development Tools"sudo yum install pcre-devel zlib-devel openssl-devel
configure 阶段显式启用模块
进入 Nginx 源码目录后,运行 ./configure 时必须包含该参数:
./configure --with-http_gzip_static_module- 建议一并启用基础 gzip 支持:
--with-http_gzip_module(二者独立,缺一不可) - 其他常用模块如
--with-http_ssl_module、--with-http_v2_module可按需添加
执行后检查输出,确认出现 checking for http_gzip_static_module ... found 表示识别成功。
编译安装并验证
完成 configure 后继续:
make && sudo make install- 启动新编译的 Nginx:
/usr/local/nginx/sbin/nginx(路径依 configure 的--prefix而定) - 验证是否生效:
nginx -V 2>&1 | grep -o with-http_gzip_static_module,有输出即表示已集成
注意:apt 或 yum 安装的官方包默认不含此模块,必须源码重编译替换二进制文件。
后续使用前提不能少
模块启用只是第一步。实际生效还需满足三个条件:
- 前端构建工具(如 webpack 插件
compression-webpack-plugin)生成同名.gz文件(例如app.js对应app.js.gz),且与原文件共存 - Nginx 配置中,在对应
location块内写入gzip_static on; - 确保该 location 下的文件类型在
gzip_types中声明(如text/css application/javascript)
不满足任一条件,Nginx 都不会使用预压缩文件,也不会报错,容易误判为配置失败。


















