nginx流量复制与放大
时间:2022-07-22
本文章向大家介绍nginx流量复制与放大,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
应用场景
- 复制线上流量至测试环境,模拟线上环境
- 流量放大,做压测
使用方式
# cat mirror.conf
server {
listen 9999;
server_name 172.20.111.180;
access_log /export/server/nginx/logs/mirror.log main;
error_log /export/server/nginx/logs/mirror_error.log error;
#设置源,即要请求的目标
location / {
mirror /mirror;
mirror_request_body on;
proxy_pass http://172.20.110.221:8080;
}
#复制源请求
location = /mirror {
internal;
proxy_pass http://172.20.111.48:8080$request_uri;
}
}
其中
mirror_request_body on 为默认开启,表示是否镜像请求body部分,与 proxy_request_buffering、fastcgi_request_buffering、scgi_request_buffering 和 uwsgi_request_buffering 冲突,一旦开启 mirror_request_body 为 on,则请求自动缓存。
流量放大也是非常的简单,只需要在请求源的时候多复制一份即可
server {
listen 80;
server_name _;
location / {
mirror /mirror;
mirror /mirror;
mirror_request_body on;
proxy_pass http://127.0.0.1:8080;
}
location = /mirror {
internal;
proxy_pass http://127.0.0.1:8080$request_uri;
}
这样既去请求时,请求一次,日志里便会有两次记录。
# curl 127.0.0.1/index.html
查看请求便会有两次记录
172.20.111.180 - - [16/Jul/2019:19:09:08 +0800] "GET /index.html HTTP/1.0" 200 612 "-" "curl/7.29.0" "-"
172.20.111.180 - - [16/Jul/2019:19:09:08 +0800] "GET /index.html HTTP/1.0" 200 612 "-" "curl/7.29.0" "-"
官方文档参考:http://nginx.org/en/docs/http/ngx_http_mirror_module.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP chr()函数讲解
- iOS音视频接入 - TRTC常见问题
- PHP常见的几种攻击方式实例小结
- PHP strripos函数用法总结
- Laravel5.0+框架邮件发送功能实现方法图文与实例详解
- Ajax+PHP实现的删除数据功能示例
- tensorflow下的图片标准化函数per_image_standardization用法
- 浅析Python面向对象编程
- Python单元测试及unittest框架用法实例解析
- Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
- YII框架实现自定义第三方扩展操作示例
- 在Tensorflow中实现leakyRelu操作详解(高效)
- Django def clean()函数对表单中的数据进行验证操作
- Python3爬虫中Splash的知识总结
- Laravel框架自定义公共函数的引入操作示例