最稳定方式是在Nginx源码编译阶段集成headers-more-nginx-module:下载Nginx源码与模块,用--add-module指定路径配置编译,再make安装;验证可通过nginx -V查看参数或nginx -t测试指令。

直接在 Nginx 源码编译阶段集成 headers-more-nginx-module 是最稳定、兼容性最好的方式。它不是插件式加载,而是作为原生模块嵌入 Nginx 二进制文件中,无需运行时动态加载支持。
准备编译环境
确保系统已安装基础编译工具和依赖库:
-
Debian/Ubuntu:
apt install -y build-essential libpcre3-dev zlib1g-dev libssl-dev -
CentOS/RHEL/Rocky:
yum install -y gcc make pcre-devel zlib-devel openssl-devel
获取源码并组织目录结构
推荐将 Nginx 源码与模块放在同级目录,便于路径引用:
- 下载 Nginx(例如 1.25.4 稳定版):
wget https://nginx.org/download/nginx-1.25.4.tar.gz && tar zxvf nginx-1.25.4.tar.gz - 克隆模块:
git clone https://gitcode.com/gh_mirrors/he/headers-more-nginx-module - 最终目录示意:
./nginx-1.25.4/./headers-more-nginx-module/
配置编译参数并启用模块
进入 Nginx 源码目录,执行 configure 命令,关键是要用 --add-module 显式引入模块路径:
- 基础命令示例:
cd nginx-1.25.4<br> ./configure --prefix=/usr/local/nginx \<br> --add-module=../headers-more-nginx-module \<br> --with-http_ssl_module \<br> --with-http_v2_module - 注意:
--add-module后的路径必须是相对或绝对真实路径,不能是符号链接;若模块在上层目录,就写../headers-more-nginx-module - 不建议省略常用功能模块(如 SSL、HTTP/2),否则可能影响实际使用
编译安装并验证是否生效
完成配置后,编译并安装:
make -j$(nproc) && sudo make install- 验证模块是否集成成功:
/usr/local/nginx/sbin/nginx -V 2>&1 | grep -o 'headers-more'
或查看完整编译参数:/usr/local/nginx/sbin/nginx -V
输出中应包含--add-module=../headers-more-nginx-module字样 - 还可检查模块指令是否可用:
在配置文件中临时加入more_set_headers "X-Test: 1";,然后运行nginx -t—— 若无报错,说明模块已就绪
集成完成后,就可以在 http、server 或 location 块中直接使用 more_set_headers、more_clear_headers 等指令了。不需要额外加载语句,也不依赖 Nginx 版本是否 ≥1.9.11。


















