nginx使用replace-filter-nginx-module实现内容替换的示例
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,有时候我们想对响应(例如PHP接口)返回的内容做些字符串,虽然可以使用各语言代码相关方法(例如PHP的str_replace)进行替换,但是在nginx层面替换是更方便的,无需修改代码。约定:本文源代
千家信息网最后更新 2025年02月24日nginx使用replace-filter-nginx-module实现内容替换的示例
有时候我们想对响应(例如PHP接口)返回的内容做些字符串,虽然可以使用各语言代码相关方法(例如PHP的str_replace)进行替换,但是在nginx层面替换是更方便的,无需修改代码。
约定:本文源代码目录统一放在:/root/soft/src 里。
安装
安装此模块需要先安装 sregex 运行库:
$ git clone https://github.com/agentzh/sregex$ cd sregex$ make$ make install
然后安装 replace-filter-nginx-module 模块:
$ cd /root/soft/src$ git clone https://github.com/agentzh/replace-filter-nginx-module$ wget http://nginx.org/download/nginx-1.12.2.tar.gz$ tar zxvf nginx-1.12.2.tar.gz
这里采用静态编译的方式安装模块,需要重新编译 nginx 。获取 nginx 上一次编译参数:
$ nginx -Vnginx version: nginx/1.12.2built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013TLS SNI support enabledconfigure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-ld-opt=-ljemalloc --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module
这里添加 replace-filter-nginx-module 模块:
--add-module=/root/soft/src/replace-filter-nginx-module
最终编译命令:
cd nginx-1.12.2$ ./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 --with-http_sub_module --with-ld-opt=-ljemalloc --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --add-module=/root/soft/src/replace-filter-nginx-module $ make
由于这里是升级nginx,所以千万不要make install,不然就真的覆盖了。 接下来手动替换二进制文件:
$ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak$ cp -rfp ./objs/nginx /usr/local/nginx/sbin/
测试是否可行:
$ nginx -vnginx version: nginx/1.12.2
配置是否正常:
$ /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
配置
这里测试的是:把接口返回的 img.test.com 换成 media.test.com。
修改: /usr/local/nginx/conf/vhost/test.com.conf
location ~ [^/]\.php(/|$){ # comment try_files $uri =404; to enable pathinfo try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf;}
为:
location ~ [^/]\.php(/|$){ replace_filter 'img.test.com' 'media.test.com' g; replace_filter_types application/json; # comment try_files $uri =404; to enable pathinfo try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf;
注意需要添加replace_filter_types 。
保存后检查配置是否ok:
$ /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
然后热重启:
# 升级完成第一次需要重启$ service nginx restart # 热重启$ /usr/local/nginx/sbin/nginx -s reload
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
模块
编译
配置
内容
代码
接口
升级
测试
可行
接下来
二进制
参数
命令
字符
字符串
就是
层面
手动
文件
方式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全法网评
彩票软件开发难不难
服务器怎么设置网站域名
背单词软件开发分析
洪湖市卫生局网络安全招标
熹妃传一个服务器多少人
汇星互联网科技有限公司
目前遥感数据库
无感支付加油站软件开发
鹤壁市中医院网络安全
域名绑定国内服务器免备案
在数据库中创建一个教师表
2018软件开发面试题
武汉服务器pdu电源生产厂家
like数据库意思
t3 数据库 win7
网络安全法数据泄露达50
东莞网络安全等级测评机构
如何表示数据库概念模型
小程序服务器域名
服务器与主机的区别
福建java软件开发高级证书
湖北通信软件开发设施检测中心
2021河南省高校网络安全知识
北京神豚软件开发有限公司
计算机网络安全专业好就业不
同一个服务器如何建立多个网站
关系数据库中的表间关系
网络安全单位
软件开发工程师(无线)