Nginx模块详解
nginx模块分为两种,官方和第三方,我们通过命令 nginx -V 查看 nginx安装信息,可以看到 下面有关 --with的nginx启动加载的模块信息。
有的编译参数我们在 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, service nginx reload ,然后输入网址测试
其中 : Active connections : 表示nginx当前活跃的连接数
2. --with-http_random_index_module
从指定目录下随机选择一个目录索引,一般用余 主页多样化,给人主页在不断变化的感觉。
配置语法: random_index on|off;
默认值:
配置位置: location下
案例如下:
2.1 现在 以前创建的目录 /opt/app/ 下创建一个目录 code,在里面编写3个html,3个html里面只要设置背景颜色即可,如下
2.2 配置 default.conf文件,如下修改两个地方
2.3 测试
重新加载 nginx服务,使用命令 service nginx reload;
在浏览器中输入ip,可以看到出现不同背景颜色的网页,多刷新几次,看到效果,注意一点,在配置的随机目录下,如果编写了一个隐藏文件,比如 .4.html文件,这样的隐藏文件是不会被随机到的,各位有兴趣,可以测试。
3. --with-http_sub_module
替换 服务器响应内容,比如浏览器向服务器发送请求,服务器返回一个response,可以通过这个模块配置 将返回的内容进行替换。
配置方法:有多种
第一种:
配置语法:sub_filter string(要替换的文本呢) string(要使用的文本)
默认配置:没有配置
配置位置:http、server、location下
第一种的实际配置demo
3.1 在 code目录下 新建一个 sub_filter.html文件,内容如下
3.2 修改 default.conf文件,修改其中的根目录
3.3 重新加载服务器,输入网址访问
3.4 现在我要配置 sub_module 模块,让返回的内容变更
再次修改 default.conf 文件,在 location下 配置 要替换的文本 和替换后的文本,如下
重新加载后,再次输入网址,发现内容已经被替换