Nginx之过滤器ngx_http_sub_module模块简介和使用

一、ngx_http_sub_module模块简介

  ngx_http_sub_模块是一个过滤器,它通过用一个指定字符串替换另一个指定字符串来修改响应。默认情况下,此模块不是构建的,应该使用–with-http_sub_module配置参数启用它。安装后可以使用sub_filter、sub_filter_last_modified、sub_filter_once、sub_filter_types指令,它的作用范围包括http, server, location。主要用途是可以替换网站中的一些敏感词。

二、模块使用介绍

1、使用nginx -V查看是否安装此模块

在这里插入图片描述

2、官网示例

location / {
    sub_filter '<a href="http://127.0.0.1:8080/'  '<a href="https://$host/';
    sub_filter '<img src="http://127.0.0.1:8080/' '<img src="https://$host/';
    sub_filter_once on;
}

3、指令说明

  • sub_filter指令,用于替换字符串,不区分字符串的大小写
    使用语法:sub_filter 要替换的字符串 替换后的字符串
  • sub_filter_last_modified指令,允许在替换期间保留来自原始响应的“Last-Modified”标题字段以促进响应缓存。默认情况下,在处理期间修改响应的内容时,标题字段被删除。
    使用语法:sub_filter_last_modified on | off,默认on
  • sub_filter_once指令,指示是否查找每个字符串以替换一次或重复替换。
    使用语法:sub_filter_once on | off,默认on
  • sub_filter_types指令,指定MIME类型的字符串替换,除了“ text/html” 之外,还可以在指定MIME类型的响应中启用字符串替换。特殊值“ *”匹配任何MIME类型。
    使用语法:sub_filter_types mime-type …,默认sub_filter_types text / html;

4、配置示例及说明

location / {
    sub_filter 'wuhongsheng' 'HongshengWu';  #使用HongshengWu字符串替换wuhongsheng字符串
    sub_filter '浪子吴天' '吴红胜';
    sub_filter_once off;   #关闭只替换一次
    proxy_pass http://show;  ##反向代理执行定义的upstream名字
}

三、使用验证

1、Tomcat原页面内容

在这里插入图片描述

2、字符串替换配置后

在这里插入图片描述

3、替换后的页面如下

在这里插入图片描述

4、关闭sub_filter_once

在这里插入图片描述

5、刷新页面

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/carefree2005/article/details/121373537