最新消息:用博客记录点滴生活。与您共同关注互联网,分享互联网。

Nginx多规则替换过滤模块nginx_substitutions_filter

本文介绍一个Nginx第三方模块nginx_substitutions_filter,此模块作用是替换过滤响应主体,Nginx也有一个类似这样的原生模块,但有一个缺点,就是只能使用一条规则,而nginx_substitutions_filter则不限规则数量。

安装方法|手动编译

1、首先下载nginx_substitutions_filter。

cd /tmp
yum install subversion svn -y
svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only

2、在编译Nginx时加上下面的参数。

 ./configure --add-module=/tmp/substitutions4nginx-read-only

安装方法|军哥lnmp一键安装包 1.1版本

1、下载nginx_substitutions_filter。

cd /tmp
yum install subversion svn -y
svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only

2、编辑lnmp目录下的nginx-upgrade.sh脚本,搜索./configure找到原来的编译参数替换成下面的参数。

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --add-module=/tmp/substitutions4nginx-read-only

然后执行./nginx-upgrade.sh重新安装nginx。

使用方法

有两条指令:subs_filter_types,subs_filter

1、subs_filter_types

语法: subs_filter_types mime-type [mime-types]

默认:subs_filter_types text/html

适用区域:http, server, location

subs_filter_types是用来指令需要替换的文件类型,默认是text/html类型,只替换text/html中的代码。

其他常用的类型还有text/css text/javascript application/javascript application/json

此模块无法处理经过压缩的内容,虽然能与gzip filter模块兼容,但无法处理反向代理返回的内容。当需要处理反向代理的内容时,可以使用如下语句禁用压缩:

proxy_set_header Accept-Encoding "";

2、subs_filter

语法:subs_filter 源字段串 目标字段串 [gior]

默认:无

适用区域:http, server, location

subs_filter指令允许在nginx响应输出内容时替换源字段串(正则或固定)为目标字符串。第三个标志含意如下:

g(默认): 替换所有匹配的字段串。

i: 执行区分大小写的匹配。

o: 仅替换首个匹配字符串。

r: 使用正则替换模式,默认是固定模式。


正文部分到此结束

声明:本文采用 BY-NC-SA 协议进行授权,转载还请注明:http://www.777s.me/nginx_substitutions_filter.html - 777's Blog