验证nginx模块是否生效需三步:一查nginx -v确认编译参数含对应模块;二用nginx -t检测配置中模块指令是否被识别;三启动后通过curl、openssl、状态接口及错误日志实测功能。

编译安装 Nginx 后,光看 configure 参数还不够,得确认模块真能用。验证分三步走:查编译记录、测配置加载、做功能实测。
一、用 nginx -V 确认模块已编译进二进制
运行 nginx -V(注意大写 V),重点看输出里的 configure arguments: 行:
- 静态模块会以
--with-xxx-module或--add-module=/path/to/module形式出现 - 动态模块不会显示在 -V 中,但
--add-dynamic-module会出现(仅限 1.9.11+) - 若装了第三方模块(如 headers-more),检查是否有对应
--add-module=路径,且路径存在
二、用 nginx -t 检查配置是否识别模块指令
模块编译进去了,不代表配置里能用。运行 nginx -t:
- 如果配置中用了该模块的指令(比如
more_set_headers、upstream_check),而 nginx 报unknown directive,说明模块没生效或指令拼错 - 成功返回
syntax is ok,只是说明语法通过,不等于功能就绪 - 配合
nginx -T可打印完整展开后的配置,方便排查指令是否被正确继承或覆盖
三、启动服务后做真实功能验证
模块真正起作用,得靠实际请求和日志反馈:
- 对启用
gzip on的 location,用curl -I http://host/path查响应头是否有Content-Encoding: gzip - 启用了
ssl_module?尝试访问 HTTPS 地址,用浏览器或openssl s_client -connect host:443看握手是否成功 - 加了健康检查模块?访问
/status或对应 check URI,看返回是否含 upstream 状态信息 - 查错误日志:
tail -f /var/log/nginx/error.log,模块加载失败、路径错误、版本不兼容都会在这里报错
不复杂但容易忽略











