我怎样才能看到Nginx编译的标志?

我怎样才能检查已经添加到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指令。