利用fiddler+nginx模拟流量识别与转发

最近看到一些关于全链路压测的文章,全链路压测主要处理以下问题:

数据清洗
压测流量标记,识别 压测流量标记的传递
测试数据与线上数据隔离
等等...

要实现全链路压测,必然要对原有的业务系统进行升级,要怎么做才能尽量减小对原业务代码的影响?可以使用代理和中间件来对流量进行标识和转发。

1.利用fiddler script添加请求头

添加的请求头作为压测流量的标识在系统间传递。

点击进入fiddler script

 

 

 在OnBeforeRequest()函数下添加以下语句:

oSession.oRequest.headers.Add("testmark","1");

保存script之后进行抓包,可以看到请求头里多了我们添加的字段:

 

 

 

2.nginx根据添加的请求头进行转发

打开nginx的配置文件nginx.conf,在location里添加如下语句:

server {
  listen 80;
  server_name xxx
; xxx为服务器的ip地址
  location / {
    if ($http_testmark){
      proxy_pass http://ip:port;
    }
  }
}

这里要注意

1.if和左括号之间要有空格

2.使用$http_testmark,而不是$testmark,使用后者,nginx会启动失败,提示unknown variable

 

设置完毕之后,凡是带有“testmark:1”字段的请求都会被转发到ip:port。

 

转载于:https://www.cnblogs.com/wujiecong/p/11573777.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值