我怎样才能检查已经添加到nginx安装模块?
nginx -V
将列出所有已configuration的模块。 没有明确的启用/加载命令。
差异单线:
2>&1 nginx -V | tr -- - '\n' | grep _module
方便比较两种环境:
lsmodn="2>&1 nginx -V | tr -- - '\n' | grep _module" diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
差异单线:
2>&1 nginx -V | tr -- - '\n' | grep _module
方便比较两种环境:
lsmodn="2>&1 nginx -V | tr -- - '\n' | grep _module" diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
编辑:
谢谢Roman Newaza,正确地指出这包括 – 没有模块编译标志。 我没有使用 – 没有标志,只是专注于获取模块列表,所以我没有抓住; 可以修改单线程以帮助在两个安装之间差异编译标志,如下所示:
2>&1 nginx -V | tr ' ' '\n'
这是一样的:
2>&1 nginx -V | xargs -n1
也许还可以通过sort
来规范化编译标志的特殊sorting,并再次将tr
分配到可区别的行上。 最后结果:
lsmodn="2>&1 nginx -V | xargs -n1 | sort | tr = '\n'" diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
如果sort
在两个远程主机上都是相同的(即它们都是GNU或BSD),那么这个方法就行得通。 如果您将Linux与BSD(Mac OS X)进行比较,只需移动| sort | tr = '\n'
| sort | tr = '\n'
| 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')
梅西耶,但它的作品。
nginx -V
命令(大写字母V)将列出所有模块,以及其他编译时选项:
%nginx -V nginx version: nginx/1.2.2 built by gcc 4.2.1 20070719 TLS SNI support enabled configure arguments: --prefix=/var/www --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-log-path=logs/access.log --error-log-path=logs/error.log --http-client-body-temp-path=/var/www/cache/client_body_temp --http-proxy-temp-path=/var/www/cache/proxy_temp --http-fastcgi-temp-path=/var/www/cache/fastcgi_temp --http-scgi-temp-path=/var/www/cache/scgi_temp --http-uwsgi-temp-path=/var/www/cache/uwsgi_temp --user=www --group=www --with-http_gzip_static_module --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module %
请注意,这个命令永远不需要sudo
,因为只有nginx需要打开IPPORT_RESERVED
(例如1024以下的端口)和/或某些日志文件才能写入的超级用户权限。
但是,根据您的$PATH
设置,您可能需要指定完整的path – 例如/usr/sbin/nginx -V
,或者确实使用sudo
来将相应的/sbin/
目录包含在$PATH
。
从更新的nginx版本开始 – 自nginx 1.9.11
(2016年2月)以来 – 现在也支持dynamic加载模块 – http://nginx.org/r/load_module – 借助load_module
指令。