简单测试nginx1.90做TCP协议负载均衡的功能
作者:网络转载 发布时间:[ 2015/5/20 14:07:45 ] 推荐标签:功能测试
近工作中需要做TCP层面的负载均衡,以前网站用的反向代理nginx只支持应用层的负载均衡,对于TCP协议是无能为力的,需要使用LVS(linux虚拟服务器)。
LVS的特点是高性能和极复杂的配置、对网络环境的要求比较高。近苦于LVS的配置测试,网上的文档和社区都比较少,按照各种教程配置,TCP报文均无法连通,再往下深究要去研究公司虚机的网络结构了...
在寻找LVS配置调试方法时,看到一篇近的文章讲4月28日刚刚发布的nginx1.90,添加了支持TCP协议的负载均衡的,如果只是需要做TCP协议的负载均衡的话,这个是可以满足需求的。如果涉及到UDP或者传输层以上的其他协议,那必须得继续死磕LVS了。
下面测试nginx代理TCP协议的配置。
realserver : 10.134.241.68
nginx :10.134.72.166
客户端:10.129.157.168
TCP监听端口:2014
一、配置nginx
看官网上的文档 http://nginx.org/en/docs/stream/ngx_stream_core_module.html
nginx1.90对TCP协议的代理并不是默认开启的,需要在编译的时候配置 --with-stream 参数:
nginx.config文件参照官网:
stream {
upstream cloudsocket {
hash $remote_addr consistent;
server 10.134.241.68:2014 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 2014;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass cloudsocket;
}
}
启动nginx,发现nginx已经开始监听2014端口了
二、测试客户端连realserver
在客户端通过telnet连接realserver的2014端口:
在realserver上查看网络连接:
可以正常连接
三、测试客户端连接nginx
在客户端通过telnet连接nginx所在服务器的2014端口
在nginx机器上查看网络连接
在realserver上查看网络连接
可以注意到nginx是给做了一个TCP连接的中转。
实际上这种负载均衡的方式有点像LVS的 VS/NAT 工作模式,数据报文的发送和接收都要经过负载均衡器,有需要替换的话这两种技术是可以平滑过渡的。
它可以运算处理能力的瓶颈,但是当用户请求越来越多时,nginx的处理能力将成为瓶颈。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11