• 简单测试nginx1.90做TCP协议负载均衡的功能


    最近工作中需要做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的处理能力将成为瓶颈

  • 相关阅读:
    有趣的网抑云
    [扩展阅读] timeit 模块详解(准确测量小段代码的执行时间)
    第044讲:魔法方法:简单定制
    第043讲:魔法方法:算术运算2
    第042讲:魔法方法:算术运算1
    第041讲:魔法方法:构造和析构
    吴恩达深度学习 第一课第四周课后编程作业 assignment4_2
    吴恩达深度学习 第一课第四周课后编程作业 assignment4_1
    第040讲:类和对象:一些相关的BIF
    [扩展阅读] property 的详细使用方法
  • 原文地址:https://www.cnblogs.com/tzyy/p/4485613.html
Copyright © 2020-2023  润新知