Nginx系列教程:nginx_substitutions_filter模块

≡放荡痞女 提交于 2019-12-03 00:24:48

nginx_substitutions_filter

请注意:此模块不是Nginx源的分布,可点击此链接找到安装说明,

http://wiki.nginx.org/NginxHttpSubsModule#Installation 。

概述

nginx_substitutions_filter 是一个过滤器模块,它可以在响应主体上运行正则表达式和固定字符串替换。该

模块不同于Nginx的本地替代模块。它能够扫描输出链缓冲区和匹配逐行字符串,类似于Apache的

mod_substitute。

比如

location / {
 
    subs_filter_types text/html text/css text/xml;
    subs_filter st(\d*).example.com $1.example.com ir;
    subs_filter a.example.com s.example.com;
 
}

指令

•subs_filter_types 
•subs_filter

subs_filter_types

语法: subs_filter_types mime-type [mime-types] 
默认值: subs_filter_types text/html 
作用域: http, server, location

subs_filter_types 用于指定subs_filter的内容类型检查。默认是text/html.。

该模块只适用于纯文本。如果是压缩的响应,它不能解压缩响应,且将忽略此响应。这个模块可以兼容gzip过滤

器模块。但是不能代理压缩的响应,您可以禁用这样的压缩响应,如下:
proxy_set_header Accept-Encoding "";

subs_filter

语法: subs_filter source_str destination_str [gior] 
默认值: none 
作用域: http, server, location 
subs_filter 允许在目标字符串的nginx响应中替换源字符串(正则表达式或固定)。替代的文本可能包含变量

。支持每个位置一个以上的替换规则。第三个标志的含义是:
•g(default): 替换所有匹配字符串。
•i: 执行区分大小写的匹配。 
•o: 只替换第一个。
•r: 处理模式是作为一个正规表达式,默认是固定的字符串。

安装说明

安装前,先获取SVN版本控制源:

svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only
 
然后编译nginx的下列选项:

./configure --add-module=/path/to/module

更新说明

nginx_substitutions_filter 0.5.2 2010-08-11 更新

•进行了多个模块的优化
•修复了缓冲区重叠的错误
•修复了输出链回归NGX_AGAIN的段故障错误
•修复了最后没有换行缓冲区的错误,这将会导至段故障。

nginx_substitutions_filter 0.5 2010-04-15 更新

•重构源结构,创建dev分支。
•修复了缓冲区块造成内容遗失的错误
•修复了last_buf的错误和兼容nginx 0.8.25版本以上的错误
•修复了固定字符串替换中不需要的配置错误
•添加正规表达式捕获功能

nginx_substitutions_filter 0.4 2009-12-23 更新

•修复了多个漏洞
nginx_substitutions_filter 0.3 2009-02-04 更新
•首次公开发布

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!