Nginx是一款高性能的Web服务器和反向代理服务器,可用于提供静态资源服务、负载均衡、反向代理等。它的模块化设计使得用户可以根据自己的需求选择安装不同的模块。本文将从多个角度分析如何查看nginx安装了哪些模块。
1. 编译安装时的模块
在编译安装nginx时,可以通过添加不同的模块来实现不同的功能。因此,查看编译时使用的参数可以得知nginx安装了哪些模块。在终端中输入以下命令即可查看:
```
nginx -V
```
该命令会输出nginx编译时使用的参数列表,其中包括了所有安装的模块。例如:
```
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module
```
上述输出结果中的“--with-”参数即为安装的模块,例如“--with-http_ssl_module”表示安装了SSL模块,“--with-http_v2_module”表示安装了HTTP/2模块。
2. 查看运行时加载的模块
除了编译时安装的模块外,nginx还支持在运行时动态加载模块。这些模块可以通过nginx.conf配置文件中的“load_module”指令加载,因此可以通过查看该文件来确定运行时加载的模块。在终端中输入以下命令即可查看nginx.conf文件的位置:
```
nginx -t
```
该命令会输出nginx.conf文件的位置,例如:
```
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
```
找到nginx.conf文件后,打开文件并查找“load_module”指令,即可找到运行时加载的模块。例如:
```
load_module modules/ngx_stream_module.so;
load_module modules/ngx_http_geoip_module.so;
```
上述示例中,运行时加载了“ngx_stream_module”和“ngx_http_geoip_module”两个模块。
3. 使用第三方工具查看
除了以上两种方法外,还可以使用第三方工具来查看nginx安装的模块。其中一个比较常用的工具是“nginx-module-vts”,它可以提供详细的nginx状态信息,包括安装的模块。安装过程如下:
```
git clone https://github.com/vozlt/nginx-module-vts.git
cd nginx-module-vts
wget 'http://nginx.org/download/nginx-1.14.0.tar.gz'
tar -xzvf nginx-1.14.0.tar.gz
./configure --prefix=/usr/local/nginx --add-dynamic-module=./
make modules
```
安装完成后,在nginx.conf文件中添加以下配置:
```
load_module modules/ngx_http_vhost_traffic_status_module.so;
```
保存并重启nginx服务后,访问“/status”地址即可看到详细的nginx状态信息,其中包括安装的模块。