session-replay-tools / tcpcopy

An online request replication and TCP stream replay tool, ideal for real testing, performance testing, stability testing, stress testing, load testing, smoke testing, and more.

Home Page:http://session-replay-tools.github.io/tcpcopy/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请问是否支持nginx为测试机做负载均衡?

codecola opened this issue · comments

采用离线方式,因为流量较大,想部署多台测试机,前面加一个nginx,用tcpcopy将流量回放到nginx,nginx再负载均衡给多台测试机。
我在nginx机器上加了route规则,用tcpcopy回放流量到nginx端口无法建立连接;在nginx机器上部署测试进程,用tcpcopy回放流量到测试进程的端口就能够成功。
请问架构上是否支持nginx做负载均衡?
需要哪些特殊配置吗?
谢谢!

补充一句:使用postman直接将请求发到nginx端口,可以正常调用测试进程。

能不能复制给nginx,是看协议本身。

无法建立连接,那跟nginx已经没有多少必然联系了,应该从这一点去找原因(原因有很多,例如route设置不合理等,最好通过抓包的方式来分析,第二次握手数据包有没有,有没有到辅助服务器,有没有黑洞掉第二次握手数据包)

环境信息:
10.213.0.47是nginx所在主机,10.213.3.157是请求ip,10.213.0.45是intercept主机
在10.213.0.47上添加了如下路由:
route add -net 10.213.3.0 netmask 255.255.255.0 gw 10.213.0.45

tcpcopy回放指令:
/usr/local/tcpcopy/sbin/tcpcopy -x 20050-10.213.0.47:8088 -s 10.213.0.45 -i 1.pcap -c 10.213.3.157

在10.213.0.47上抓了8088端口的包,如下:
1 0.000000 10.213.0.47 10.213.3.157 TCP 58 8088 → 1697 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
2 1.000599 10.213.0.47 10.213.3.157 TCP 58 [TCP Retransmission] 8088 → 1697 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
3 3.200658 10.213.0.47 10.213.3.157 TCP 58 [TCP Retransmission] 8088 → 1697 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
4 7.200580 10.213.0.47 10.213.3.157 TCP 58 [TCP Retransmission] 8088 → 1697 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
5 10.030305 10.213.0.47 10.213.3.157 TCP 54 8088 → 1697 [RST, ACK] Seq=161742455 Ack=259 Win=0 Len=0
7 39.324581 10.213.0.47 10.213.3.157 TCP 58 [TCP Retransmission] 8088 → 1616 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460

谢谢回复!