博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gor 流量复制实战
阅读量:6684 次
发布时间:2019-06-25

本文共 1671 字,大约阅读时间需要 5 分钟。

  hot3.png

1 需求背景

  把prd环境某个域名下的某个post url访问流量复制到stg环境中的机器上,不过在stg环境中访问的post url已经和prd的不一样了,但是后端处理程序是可以处理这种变化的。

####  例如:

prd: http://www.example.com/pc_session.php  -->  stg: http://www.test.com/bd-blink-server/asynctapi/PC-session

2 难点

####  1 在众多url中只复制某一个的url的访问流量,在单机的www.example.com下面有几十个api接口,只复制pc_session.php接口的流量,tcpcopy排除。 ####  2 流量复制到stg环境后,stg的服务接口变了,并不是从prd复制过来的url接口访问格式。 ####  3 整个流量复制是要获取post的值,不是get的值,rewrite方式排除,rewrite到外部域名只能传递get数据,rewrite到内部域名是可以传递post参数的。

3 方案

####  Gor+nginx(nginx_proxy)来实现。 ####  1 Gor通过http method匹配post方式的请求,通过url匹配来获取指定的url。 ####  2 nginx location精确匹配要过滤的url,通过nginx_proxy代理到固定的url上面。

4 实施

####  1 prd:bd-prd-nginx-174机器运行gor复制流量

gor5 --input-raw :80 --output-http http://10.203.80.53:80  --http-allow-method POST --http-set-header 'User-Agent: Gor' -http-allow-url pc_session.php

如图

####  2 stg:bd-stg-api-53机器配置nginx

server {        listen       10.203.80.53:80;        access_log   logs/stg-bdgblog.eastmoney.com-access.log main;        error_log    logs/stg-bdgblog.eastmoney.com-error.log;        location / {                if ( $uri !~ /pc_session.php$ ) {                        return 503;                }        }        location  = /pc_session.php {                proxy_pass http://10.203.80.52:8000/bd-blink-server/asynctapi/PC-session;                proxy_set_header Host $host;                proxy_set_header X-Real-IP $remote_addr;                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        }                access_log   logs/pc-session_access.log main;                error_log    logs/pc-session_error.log;}

如图

####  3 stg:bd-stg-api-52 查看后端处理逻辑是否收到数据 如图

转载于:https://my.oschina.net/guol/blog/700563

你可能感兴趣的文章
GitOSC和GitHub上传项目
查看>>
Linux学习记录-2015-08-20--常用命令1
查看>>
【动态规划】0-1背包问题原理和实现
查看>>
在Word 2007文档表格中设置行高度和列宽度
查看>>
android:layout_gravity和android:gravity
查看>>
关于MYSQL的一些命令
查看>>
SCCM 2016 为客户端分发管理组件Configuration Manager(一)
查看>>
交换机SPAN功能配置
查看>>
Restful学习随笔
查看>>
CurrentRowColor 选中行 颜色改变
查看>>
内容溢出显示省略号
查看>>
更改matlab默认工作路径
查看>>
JavaScript 书籍推荐(转)
查看>>
Adobe:彻底解决Firefox与Flash插件卡顿
查看>>
凡客和锤子
查看>>
设计模式(5)--单例模式
查看>>
pitch yaw roll是什么
查看>>
深浅copy
查看>>
Hibernate之一级缓存
查看>>
Python基础之定义有默认参数的函数
查看>>