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
- hdu----(1528)Card Game Cheater(最大匹配/贪心)
- hdu-----(1507)Uncle Tom's Inherited Land*(二分匹配)
- hdu----149850 years, 50 colors(最小覆盖点)
- hdu------1281 棋盘游戏(最小覆盖点)
- hdu-----(1179)Ollivanders: Makers of Fine Wands since 382 BC.(二分匹配)
- hdu-----(1151)Air Raid(最小覆盖路径)
- hdu-----(1150)Machine Schedule(最小覆盖点)
- 【重磅】微软Facebook联手发布AI生态系统,CNTK+Caffe2+PyTorch挑战TensorFlow
- hduoj-----(1068)Girls and Boys(二分匹配)
- 使用Django suit或Bootstrap美化admin模板
- hdu---------(1026)Ignatius and the Princess I(bfs+dfs)
- hdu-----(1113)Word Amalgamation(字符串排序)
- HDUoj-------(1128)Self Numbers
- cf------(round 2)A. Winner
- 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 数组属性和方法
- 再不迁移到Material Design Components 就out啦
- hbase 学习
- 再谈Fragment
- java线程池(四):ForkJoinPool的使用及基本原理
- 算法书中算法
- Robo3T 与 NaviCat 的安装
- 牛客网2017年校招真题-1
- 实例分割新思路之SOLO v1&v2深度解析
- 牛客网剑指offer-3
- java8新特性总结备忘
- 商业数据分析从入门到入职(6)Python程序结构和函数
- 数据科学家极力推荐核心计算工具-Numpy的前世今生(下)
- Android 重构 | 持续优化统一管理 Gradle
- 快速学习-XXL-JOB调度中心/执行器 RESTful API
- 快速学习-XXL-JOB快速入门