最直接有效的方式是使用 nginx -V 命令,输出第二行 configure arguments: 后列出所有编译时启用的模块,如 --with-http_ssl_module;也可用 nginx -h 快速查看内置模块关键词,并通过 nginx -t 验证配置中模块指令是否生效。

在 Nginx 中查看当前已编译安装的模块列表,最直接有效的方式是使用 nginx -V 命令(注意是大写 V)。
使用 nginx -V 查看编译参数和模块
执行以下命令:
nginx -V
该命令会输出两行信息:第一行是 Nginx 版本号;第二行(以 configure arguments: 开头)显示了编译时使用的完整配置参数。所有通过 --with- 或 --add-module= 启用的第三方或官方模块,都会出现在这一行中。
例如输出中包含:
--with-http_ssl_module --with-http_v2_module --add-module=/path/to/ngx_brotli
就说明已编译了 SSL、HTTP/2 和 Brotli 模块。
使用 nginx -h 快速查看内置模块关键词
运行:
nginx -h
在帮助信息末尾通常会列出部分核心模块的开关提示(如 -s、-t 等),虽不完整,但能快速确认是否支持常用功能模块(如 http_ssl_module 对应 -t 测试时是否识别 ssl 指令)。
检查运行中的模块(需配合调试或源码)
标准 Nginx 二进制文件不提供运行时模块枚举接口。若需精确确认某个模块是否生效,可:
- 检查配置文件中是否使用了该模块特有的指令(如
ssl_certificate表明http_ssl_module被加载) - 尝试用
nginx -t验证含模块指令的配置能否通过语法检查 - 对于第三方模块,查阅其文档确认启用方式(如某些模块需在
http或stream块中显式调用)
补充:从源码或包管理器反查(适用于部署环境)
如果你不是自己编译的 Nginx,而是通过系统包安装(如 apt/yum/dnf):
- Ubuntu/Debian:
apt show nginx-full或查看/usr/share/doc/nginx-full/README.Debian.gz - CentOS/RHEL:
rpm -q --changelog nginx或dnf list installed | grep nginx - 这些方式可间接判断发行版打包时启用了哪些模块











