Jor*_*ris 305
nginx -V将列出所有配置的模块。没有明确的启用/加载命令。
小智 70
Diff-able one-liner:
2>&1 nginx -V | tr -- - '\n' | grep _module
Run Code Online (Sandbox Code Playgroud)
方便比较两种环境:
lsmodn="2>&1 nginx -V | tr -- - '\n' | grep _module"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
Run Code Online (Sandbox Code Playgroud)
编辑:
谢谢你,Roman Newaza,正确指出这包括--without模块编译标志。我没有使用--without标志,只是专注于获取模块列表,所以我没有注意到;可以修改 one-liner 以帮助在 2 个安装之间差异编译标志,如下所示:
2>&1 nginx -V | tr ' ' '\n'
Run Code Online (Sandbox Code Playgroud)
这与:
2>&1 nginx -V | xargs -n1
Run Code Online (Sandbox Code Playgroud)
也许也可以通过管道将sort编译标志的特殊顺序标准化,并tr再次将分配拆分为可区分的行。最后结果:
lsmodn="2>&1 nginx -V | xargs -n1 | sort | tr = '\n'"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
Run Code Online (Sandbox Code Playgroud)
如果sort在两个远程主机上的行为相同(即它们都是 GNU 或 BSD),则该方法有效。如果您将 Linux 与 BSD (Mac OS X) 进行比较,只需将这| sort | tr = '\n'部分移到lsmodn本地 shell 中即可sort:
lsmodn="2>&1 nginx -V | xargs -n1"
diff -y <(ssh linux eval $lsmodn | sort | tr = '\n') <(ssh macosx eval $lsmodn | sort | tr = '\n')
Run Code Online (Sandbox Code Playgroud)
梅西耶,但它有效。
小智 7
nginx -V没有显示所有模块,它为我显示了大约 20 个模块。
我使用strings /usr/sbin/nginx|grep _module|grep -v configure| sort它列出了我的 nginx 中的所有 200 多个模块。
我也尝试过objdump,但看起来我安装中的 nginx 已删除二进制文件。
| 归档时间: |
|
| 查看次数: |
159272 次 |
| 最近记录: |