nginx流量复制技巧
嘻嘻发布于2020-04-08
浏览nginx在版本1.13.4后新增了一个流量复制的模块ngx_http_mirror_module, 这个模块可以通过创建子请求将请求转发至mirror端,直接请求mirror的请求将会被忽略。流量复制的功能在很多场景下都会用到比如模拟正式请求、正式请求监控等。
具体例子:
location / {
mirror /mirror;
proxy_pass http://backend;
}
location = /mirror {
internal;
proxy_pass http://test_backend$request_uri;
}
流量复制的场景
风险性能和质量保证测试
在高并发,大数据场景下,有时上线一个新的功能,正式环境没法预估线上的QPS大小,这时就可以导入一部分正式环境的流量到预发环境,模拟正式的流量,消除风险。
应用程序监视
应用程序监视会消耗大量宝贵的资源。与其在所有生产应用程序主机上安装代理来浪费它们,还不如专门使用一台服务器或一组服务器来将所有请求镜像到这些服务器。
分析
与应用程序监视类似,捕获分析通常需要在生产服务器上安装代理。从这些服务器上卸下负担,把它们放到其他地方。通过将所有请求镜像到您的分析后端,您可以在不影响生产服务器的情况下捕获相同的数据。
文件上传
可能服务器后面有多个后端,可以通过流量复制将文件上传到多个后端上。