实战配置文件如下:
server {server_name sub.ziyang.com;error_loglogs/myerror.loginfo;location / {sub_filter 'Nginx.oRg''$host/nginx';sub_filter 'nginX.cOm' '$host/nginx';#sub_filter_once on;sub_filter_once off;#sub_filter_last_modified off;sub_filter_last_modified on;}}
这里需要重新编译 Nginx,我这里把下一节需要的模块也一起编译进去了:
./configure --prefix=/Users/mtdp/myproject/nginx/test_nginx --with-http_sub_module --with-http_addition_module --with-http_realip_modulemakecp nginx ../../test_nginx/sbin/ # 复制编译好的 nginx 到之前的目录
执行热部署:
热部署的流程详见 Nginx 入门及命令行操作
kill -USR2 87693 # 使用新的 Nginx 二进制文件提供服务kill -WINCH 87693 # 退出老的 Nginx 的 worker 进程kill -quit 87693 # 优雅的退出老的 master 进程
在浏览器中打开 sub.ziyang.com:文章插图
这里面会发现,nginx.org 已经替换成了 sub.ziyang.com/nginx,nginx.com 也替换成了 sub.ziyang.com/nginx 。
addition 模块下面再来看一个过滤模块,addition 模块,它可以在响应的前后添加内容 。
- 功能:在相应前或者响应后增加内容,增加内容的方式,是通过新增子请求,根据子请求的响应来完成 。
- 模块:ngx_http_addition_filter_module 默认未编译进 Nginx,通过 --with-http_addition_module 启用
Syntax: add_before_body uri;Default: —Context: http, server, locationSyntax: add_after_body uri;Default: —Context: http, server, locationSyntax: addition_types mime-type ...;Default: addition_types text/html; Context: http, server, location
这里的三个指令都比较简单,说一下 add_before_body 和 add_after_body 后面的 uri,这个的意思是说,向指定 uri 发起子请求,根据子请求的响应来添加内容 。addition_types 指令是指定要添加的文件类型 。
实战配置文件如下:
server {server_name addition.ziyang.com;error_log logs/myerror.log info;location / {#add_before_body /before_action;#add_after_body/after_action;#addition_types *;}location /before_action {return 200 'new content beforen';}location /after_action {return 200 'new content aftern';}location /testhost {uninitialized_variable_warn on;set $foo 'testhost';return 200 '$gzip_ration';}}
先看在注释掉 addition 模块的指令的情况下,会是什么效果:?~ curl addition.ziyang.com/a.txta
然后打开注释:?~ curl addition.ziyang.com/a.txtnew content beforeanew content after
在原响应前后都增加了内容 。这里面需要注意一点,在实际情况下,add_before_body 和 add_after_body 后面是其他的 uri,我这里为了简化,直接转发到对应的 location 。
【Nginx 的过滤模块是干啥用的?】本文涉及到的所有配置文件我已经放在了 Nginx 配置文件,大家可以自取 。
推荐阅读
- 为什么用抓包工具看HTTPS包是明文的?
- 面试被问了几百遍的 IoC 和 AOP,还在傻傻搞不清楚?
- Netty中的这些知识点,你需要知道
- 淘宝第四层级流量分配 淘宝层级和流量的关系
- 最好用的PDF文档处理工具,不接受反驳
- 快递助手怎么回收已发货的单号 快递助手怎么设置快递模板
- 淘宝产品权重包含哪些 淘宝权重是什么意思店铺权重一般指的是什么
- 9款办公方面的软件神器
- 新手开网店注意的事项 怎么开网店新手入门
- 茶水之梅兰竹菊,武夷岩茶培火程度对口感的影响