如何列出已安装的Nginx模块和已编译标志

时间:2020-01-09 10:39:30  来源:igfitidea点击:

如何列出已安装的Nginx模块?
如何找到在Linux和类似Unix的操作系统上编译的Nginx服务器的标志?
我们可以使用nginx命令本身轻松查看Nginx编译了哪些标志。

该命令还列出了已安装的Nginx模块。
本教程解释了供开发人员和sysadmin使用的各种命令行选项,以确定是否编译了特定功能。

Linux列出已安装的Nginx模块

确保以root用户(sudo nginx -V)运行nginx命令,并且nginx在$PATH中。

打开终端应用程序,然后执行以下命令:

$ nginx -V
nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-5J5hor/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module

Nginx以整齐的格式列出已安装的模块

-V选项传递给nginx命令。
它列出了所有已配置的Nginx模块。
但是,使用egrep命令/grep命令不容易读取或搜索输出。
例如,查看Nginx是否使用stub_status_module编译,运行:

$ nginx -V | grep --color stub_status_module

更具可读性的语法:

$ nginx -V 2>&1 | tr ' ' '\n'
$ nginx -V 2>&1 | tr ' ' '\n' | grep 'something'
$ nginx -V 2>&1 | tr ' ' '\n' | grep 'ssl'
$ nginx -V 2>&1 | tr ' ' '\n' | egrep -i 'ssl|brotli|pagespeed'

请注意,2>&1将使用shell管道将stderr和stdout重定向到tr命令命令。
有关详细说明,请参见BASH Shell将stderr重定向到stdout(将stderr重定向到File)。

查找在Unix下使用Nginx编译了哪些标志

相同的命令列出了Nginx下的编译模块和动态模块:

$ nginx -V
$ nginx -V 2>&1 | tr ' ' '\n'
--prefix=/usr/share/nginx
--conf-path=/etc/nginx/nginx.conf
--http-log-path=/var/log/nginx/access.log
--error-log-path=/var/log/nginx/error.log
--lock-path=/var/lock/nginx.lock
--pid-path=/run/nginx.pid
--modules-path=/usr/lib/nginx/modules
--http-client-body-temp-path=/var/lib/nginx/body
....
..

其他Nginx命令选项

显示nginx版本并退出:

$ nginx -v # small -v

要查看版本和配置选项,请运行:

$ nginx -V # CAPITAL -V

测试Nginx配置是否存在错误:

$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] mkdir() "/var/lib/nginx/body" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

在配置测试期间隐藏非错误消息

$ nginx -t -q

我们可以测试配置,然后将其转储到屏幕上:

$ nginx -T

发送信号以控制Nginx服务器:

$ sudo nginx -s signal

停止Nginx服务器:

$ sudo nginx -s stop

在对配置文件进行更改之后或在创建/颁发/续订TLS/SSL证书后,重新加载Nginx服务器:

$ sudo ngix -s reload

创建存储在/var/log/nginx /中的日志文件后,重新打开日志文件:

$ sudo ngix -s reopen