Nginx模块讲解_http_sub_module
1、http_sub_module详解
(1)http_sub_module作用
(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;
}
2、sub语法
(1)sub_filter语法
Syntax: | sub_filter string replacement; |
Default: | — |
Context: | http,server,location |
语法解释:
sub_filter string replacement;
string 表示被替换的字符串
replacement 表示替换字符串
Sets a string to replace and a replacement string. The string to replace is matched ignoring the case. The string to replace (1.9.4) and replacement string can contain variables. Several sub_filter
directives can be specified on one configuration level (1.9.4). These directives are inherited from the previous level if and only if there are no sub_filter
directives defined on the current level.
(2)sub_filter_last_modified语法
Syntax: | sub_filter_last_modified on | off; |
Default: | sub_filter_last_modified off; |
Context: | http,server,location |
This directive appeared in version 1.5.1.
语法解释:
sub_filter_last_modified on 表示允许在替换期间保留原始响应中的“Last-Modified”头字段,以便于响应缓存。
Allows preserving the “Last-Modified” header field from the original response during replacement to facilitate response caching.
By default, the header field is removed as contents of the response are modified during processing.
(3)sub_filter_once语法
Syntax: | sub_filter_once on | off; |
Default: | sub_filter_once on; |
Context: | http,server,location |
语法解释:
sub_filter_once on 表示只替换第一次匹配的字符串
Indicates whether to look for each string to replace once or repeatedly.
(4)sub_filter_types语法
Syntax: | sub_filter_types mime-type ...; |
Default: | sub_filter_types text/html; |
Context: | http,server,location |
语法解释:
sub_filter_types text/html 表示替换文件类型,“*”表示匹配所有MIME类型
Enables string replacement in responses with the specified MIME types in addition to “text/html
”. The special value “*
” matches any MIME type (0.8.29).
3、sub_filter配置
(1)HTTP内容替换
(2)server1.html修改
4、验证sub_filter配置是否生效
(1)验证sub_filter配置是否生效
此时发现,只有第一个匹配的字符串被替换了;
原因:sub_filter_once默认配置为on
(2)显示关闭sub_filter_once配置
(3)验证sub_filter_once配置是否生效
sub_filter_once off配置生效,所有的匹配到的字符串全部被替换: