美文网首页openresty
nginx 动态修改响应的内容

nginx 动态修改响应的内容

作者: dalongrong | 来源:发表于2017-07-06 08:54 被阅读160次

1. 目标

不用修改后端代码,但是还需要进行js 、css 等资源文件的加载

主要的场景是进行统计分析

2.技术实现

通过服务器扩展进行动态添加

iis 可以添加模块,nginx 可以使用  sub_filter,tengine 可以使用 ngx_http_footer_filter_module

openresty 可以使用sub_filter(默认以及编译进去了) 或者 通过lua 脚本获取内容,然后修改,或者把

tengine 的模块打包进去。

3. 代码实现(基于openresty)

location/{

root  html;

index  index.html index.htm;

sub_filter_once on;

sub_filter  '';

}

备注:对于反向代理的页面也可以进行添加

4. 效果

5. sub_filter 参考资料

sub_filter 一行代码前面是需要替换的内容,后面单引号内是替换成的内容。

sub_filter_once 意思是只查找并替换一次。on是开启此功能,off是关闭——默认值是on。

sub_filter_types 一行意思是选定查找替换文件类型为文本型。也可以不加此行,因为默认只查找文本型文件。

sub_filter模块可以用在http, server, location模块中。主要作用就是查找替换文件字符。

比较实用的例子就是,如果我们用模板生成网站的时候,因为疏漏或者别的原因造成代码不如意,但是此时因为

文件数量巨大,不方便全部重新生成,那么这个时候我们就可以用此模块来暂时实现纠错。另一方面,我们也可

以利用这个实现服务器端文字过滤的效果,结合openresty 你可以实现更厉害的功能,可以自己发挥。

6. 延伸

结合 openresty  能够直接访问redis  memcache   mysql  在 access 阶段 、 set  阶段我们可以进行动态扩展脚本

如下,同样的功能将代码修改为一下的配置

location/{

root  html;

index  index.html index.htm;

sub_filter_once on;

set$userurl"";

set_by_lua_block $userurl{return[[]];

}

sub_filter$userurl;

}

相关文章

  • nginx 动态修改响应的内容

    1. 目标 不用修改后端代码,但是还需要进行js 、css 等资源文件的加载 主要的场景是进行统计分析 2.技术实...

  • JQ

    jQuery 能做什么? 方便快捷获取DOM元素 动态修改页面样式、动态改变DOM内容 解决跨浏览器兼容 响应用户...

  • jQuery

    题目1: jQuery 能做什么? 1.方便快捷获取DOM元素2.动态修改页面样式3.动态改变DOM内容4.响应用...

  • Nginx 打印body体内容

    Nginx 打印body体内容,修改nginx配置文件nginx.conf 重新加载配置文件 nginx body...

  • 监控Nginx

    启动nginx_exporter 配置nginx 修改nginx.conf 在http模块中添加内容如下: 添加配...

  • 传统servlet在spring中的应用

    一、Servletservlet用于生成动态内容。webflux不是基于servlet容器。静态内容由nginx生...

  • nginx反向代理实现负载均衡

    假设前端nginx只存在index.html 构建反向代理,nginx仅仅处理静态内容不处理动态内容 客户端访问l...

  • Swift static Cell 和Dynamic Cell混

    静态单元格内容不需要修改动态单元格内容需要修改

  • Nginx配置不同端口虚拟主机

    Nginx简易配置不同端口的虚拟主机 系统环境及nginx版本: 修改配置文件,添加如下内容: 创建各自nginx...

  • Nginx 403

    原因:未指定Nginx运行的用户或用户组解决方案:修改Nginx配置文件nginx.conf,添加以下内容:

网友评论

    本文标题:nginx 动态修改响应的内容

    本文链接:https://www.haomeiwen.com/subject/avnchxtx.html