一、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名字
}