使用Nginx反向代理和内容替换模块实现网页内容动态替换功能
来源:互联网 发布:骑士团国家知乎 编辑:程序博客网 时间:2024/06/05 08:57
Nginx是一款轻量级高性能服务器软件,虽然轻量,但功能非常强大,可用于提供WEB服务、反向代理、负载均衡、缓存服务、甚至可以通过添加一些模块搭建rtmp流媒体服务。最近碰到一个客户需求,需要用到nginx网页内容替换模块,以下是相关实验记录,贴出来跟大家交流,如有不足之处请指出。
ngx_http_sub_module模块是一个过滤器,它修改网站响应内容中的字符串。这个模块已经内置在nginx中,但是默认未安装,需要安装需要加上配置参数:--with-http_sub_module 如果已经安装nginx,只需要再添加这个模块就可以了。
一、安装:
nginx官网下载安装包:http://nginx.org/en/download.html# wget http://nginx.org/download/nginx-1.11.5.tar.gz# tar -zxvf nginx-1.11.5.tar.gz# cd nginx-1.11.5# ./configure --with-http_stub_status_module --with-http_sub_module && make && make install
二、常用指令:
2.1 sub_filter指令: sub_filter string(原字符串) replacement(用于替换的字符串);
用于设置需要使用说明字符串替换说明字符串.string是要被替换的字符串,replacement是 新的字符串,它里面可以带变量。
2.2 sub_filter_last_modified指令: sub_filter_last_modified on | off;
用于设置网页内替换后是否修改 可在nginx.conf的 http, server, location三个位置配置使 用,默认值是off;
2.3 sub_filter_once指令:sub_filter_once on | off;
用于设置字符串替换次数,默认只替换一次。如果是on,默认只替换第一次匹配到的到字 符,如果是off,那么所有匹配到的字符都会被替换;
2.4 sub_filter_types指令:sub_filter_types *
用于指定需要被替换的MIME类型,默认为“text/html”,如果制定为*,那么所有的;
说明:以上指令可在nginx.conf的http, server, location三个位置配置使用;
三、反向代理动态替换网页内容实例参考:
upstream www.iptest.cn {server 118.184.180.46:80;}#反向代理,如果有多个服务端ip,还可以添加负载均衡方式,权重等策略#server {listen 80;#监听端口#server_name www.iptest.cn;#设置server name#charset utf-8;#设置字符编码为utf-8,可根据实际情况调整#location / {proxy_pass http://www.iptest.cn$request_uri;#反向代理规则#proxy_set_header Accept-Encoding deflate;#设置反向代理头部,有时候源站响应的是gzip格式,替换的时候会有问题,可通过此项解决#subs_filter '183.251.160.127' '123.181.128.17';#替换指定ip,此处将183.251.160.127替换成123.181.128.17#subs_filter '福建省龙岩市 移动' '河北省唐山市 电信';#替换城市、运营商信息,nginx此替换模块支持中文替换#subs_filter_types text/html;#指定被替换的MIME类型#sub_filter_once on;#指定字符串替换次数,on表示只替换第一次匹配到的字符,off表示替换所有匹配到的字符#}}
说明:
1、此模块替换不区分大小写;
2、支持中文替换;
Nginx.conf 完整配置:
实验效果截图:
结束语:
另外一个类似的内容替换模块nginx_substitutions_filter,有兴趣的可以做下实验玩玩。
- 使用Nginx反向代理和内容替换模块实现网页内容动态替换功能
- Nginx 反向代理内容替换(整理总结一套自己需要的东西)
- js实现内容查找和替换
- Dreamweaver使用正则表达式批量替换网页内容
- java实现查找文本内容替换功能示例
- DOS下实现内容替换
- 使用poi动态替换word指定文本内容
- Apache 反向代理与修改网页内容
- fileinput模块:读取,替换文本内容
- 实现WEB页内容查找和替换操作
- C#实现WORD文档的内容复制和替换
- datatable 数据替换 内容替换
- datatable 内容替换 数据替换
- 使用nginx 实现反向代理
- 使用Nginx实现反向代理
- 使用Nginx实现反向代理
- 使用Nginx实现反向代理
- 使用Nginx实现反向代理
- 网络爬虫系列笔记(3)——Beautiful Soup库
- linux中软链接和硬链接的区别与小结
- 《leetcode》search-insert-position
- Java并行程序设计模式小结
- echarts页面的图表的base64生成图片折线图只有点
- 使用Nginx反向代理和内容替换模块实现网页内容动态替换功能
- 使用Apriori进行关联分析(二)
- 腾讯云 基于 CentOS 搭建 Discuz 论坛
- POJ
- 无人驾驶课程准备
- WordPress地址(URL)修改后无法进入网站解决办法
- 国产最火4款HTML5前端框架(JX、KISSY、QWrap、Tangram)
- 查找算法(一):顺序查找
- opencv—HAAR训练器参数