Nginx模块详解

nginx模块分为两种,官方和第三方,我们通过命令 nginx -V 查看 nginx安装信息,可以看到 下面有关 --with的nginx启动加载的模块信息。

nginx 常用模块 nginx module_加载


有的编译参数我们在 nginx编译参数详解那一篇文件讲解过了,现在我们就看下文的中 模块这一块,挑选几个经常用的进行解释。

--with-compat 

# 启用file aio支持(一种APL文件传输格式)
--with-file-aio 

--with-threads 

# 启用ngx_http_addition_module支持,作为一个输出过滤器,支持不完全缓冲,分部分响应请求
--with-http_addition_module 

--with-http_auth_request_module 

# 启用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)默认情况下为关闭,需编译开启
--with-http_dav_module 

# 启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)
--with-http_flv_module 

--with-http_gunzip_module 

# 启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)
--with-http_gzip_static_module 

--with-http_mp4_module 

# 启用ngx_http_random_index_module支持(从目录中随机挑选一个目录索引)
--with-http_random_index_module 

# 启用ngx_http_realip_module支持,这个模块允许从请求标头更改客户端的IP地址值,默认为关
--with-http_realip_module 

# 启用ngx_http_secure_link_module支持(计算和检查要求所需的安全链接网址)
--with-http_secure_link_module 

--with-http_slice_module

# 启用 ngx_http_ssl_module支持,仅支持https请求,需已经安装openssl 
--with-http_ssl_module 

# 启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态)
--with-http_stub_status_module 

# 启用ngx_http_sub_module支持(允许用一些其他文本替换nginx响应中的一些文本)
--with-http_sub_module
 
--with-http_v2_module 

# 启用POP3/IMAP4/SMTP代理模块支持
--with-mail 

# 启用ngx_mail_ssl_module支持
--with-mail_ssl_module 

# ngx1.9之后的stream模块
--with-stream 
--with-stream_realip_module 
--with-stream_ssl_module 
--with-stream_ssl_preread_module

在这里,先挑几个常用的解释和配置,后面的课程中对其他的模块使用有对应案例一起解释


1.  --with-http_stub_status_module

该模块展示了当前nginx的客户端状态

配置语法: stub_status;

默认:没有配置

配置位置:server、location下面

nginx 常用模块 nginx module_nginx_02


重新启动nginx, service nginx reload ,然后输入网址测试

nginx 常用模块 nginx module_nginx 常用模块_03


其中 :  Active connections : 表示nginx当前活跃的连接数



2.  --with-http_random_index_module

从指定目录下随机选择一个目录索引,一般用余 主页多样化,给人主页在不断变化的感觉。

配置语法: random_index on|off;

默认值:

配置位置: location下

案例如下:

2.1 现在 以前创建的目录  /opt/app/ 下创建一个目录  code,在里面编写3个html,3个html里面只要设置背景颜色即可,如下

nginx 常用模块 nginx module_nginx_04


2.2 配置 default.conf文件,如下修改两个地方

nginx 常用模块 nginx module_html_05


2.3  测试

重新加载 nginx服务,使用命令  service nginx reload;

在浏览器中输入ip,可以看到出现不同背景颜色的网页,多刷新几次,看到效果,注意一点,在配置的随机目录下,如果编写了一个隐藏文件,比如 .4.html文件,这样的隐藏文件是不会被随机到的,各位有兴趣,可以测试。

nginx 常用模块 nginx module_html_06


3.  --with-http_sub_module

替换 服务器响应内容,比如浏览器向服务器发送请求,服务器返回一个response,可以通过这个模块配置 将返回的内容进行替换。


配置方法:有多种

第一种:

配置语法:sub_filter  string(要替换的文本呢)  string(要使用的文本)

默认配置:没有配置

配置位置:http、server、location下


第一种的实际配置demo

3.1 在 code目录下 新建一个 sub_filter.html文件,内容如下

nginx 常用模块 nginx module_nginx_07


3.2 修改 default.conf文件,修改其中的根目录

nginx 常用模块 nginx module_nginx_08


3.3 重新加载服务器,输入网址访问

nginx 常用模块 nginx module_html_09


3.4  现在我要配置  sub_module 模块,让返回的内容变更

再次修改 default.conf 文件,在 location下 配置 要替换的文本 和替换后的文本,如下

nginx 常用模块 nginx module_nginx 常用模块_10


重新加载后,再次输入网址,发现内容已经被替换

nginx 常用模块 nginx module_html_11