Nginx 编译启用 addition 模块只需 configure 时添加 --with-http_addition_module 参数,该模块为官方内置,非第三方,不可用 --add-module;编译后通过 nginx -V 验证或配置 add_before_body/add_after_body 指令测试。

Nginx 源码编译启用 addition 模块(即 ngx_http_addition_module)非常直接,因为它是 Nginx 官方自带的 HTTP 模块,无需下载第三方源码,也不需要额外 --add-module 参数——只需在 ./configure 时显式启用即可。
该模块默认是禁用的,必须通过 --with-http_addition_module 参数主动开启。
✅ 正确启用方式
进入 Nginx 源码目录(如 /usr/src/nginx-1.22.1),执行 configure 命令时加入:
--with-http_addition_module
完整示例(含常用基础模块):
./configure \ --prefix=/etc/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --pid-path=/var/run/nginx.pid \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_addition_module # ← 关键:启用 addition 模块
⚠️ 注意:不要写成
--add-module=xxx,这不是第三方模块,不需要指定路径;也不要漏掉http_前缀,正确名称是--with-http_addition_module(不是--with-addition-module或类似变体)。
✅ 编译与验证
执行完 configure 后,继续:
make sudo make install
验证是否成功启用:
nginx -V 2>&1 | grep -o with-http_addition_module
如果输出 with-http_addition_module,说明已编译进二进制。
也可在配置中测试指令是否被识别:
location / {
add_before_body /header.html;
add_after_body /footer.html;
}
若 reload 不报错,且功能生效,即确认可用。
❌ 常见误区
- 把
addition当作第三方模块,去 GitHub 找源码、写config文件、用--add-module—— 完全没必要; - 忘记
http_前缀,写成--with-addition-module→ configure 会静默忽略; - 在已安装的 Nginx 上想“热加”该模块 → 不支持动态加载,必须重新编译。
不复杂但容易忽略。











