Nginx模块详解
nginx模块分为两种,官方和第三方,我们通过命令 nginx -V 查看 nginx已经安装的模块![root@localhost ~]# nginx -V
nginx version: nginx/1.15.9 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
# 启用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 # 启用ngx_mail_ssl_module支持 --with-mail_ssl_module1. --with-http_stub_status_module 该模块展示了当前nginx的客户端状态 配置语法: stub_status; 默认:没有配置 配置位置:server、location下面
然后重启nginx
其中 : Active connections : 表示nginx当前活跃的连接数 server accepts handled requests: 有三个值,第一个值表示 nginx处理的握手次数,第二个值表示nginx处理的连接次数,第三个值表示总的请求数,正常来说 握手次数和连接次数的值应该相等,意味着没有连接丢失
. --with-http_random_index_module 从指定目录下随机选择一个目录索引,一般用余 主页多样化,给人主页在不断变化的感觉。 配置语法: random_index on|off; 默认值: 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下 配置 要替换的文本 和替换后的文本,如下 重新加载后,再次输入网址,发现内容已经被替换