V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
play78
V2EX  ›  问与答

TCP 长连接负载均衡问题

  •  
  •   play78 · 2017-12-15 14:51:40 +08:00 · 14538 次点击
    这是一个创建于 2536 天前的主题,其中的信息可能已经有所发展或是发生改变。
    (10W 客户) -----TCP 长连接-----> Nginx/HAproxy/LVS(软件负载) ------TCP 长连接-----> (实际业务,多台业务 PC 主机)

    客户端 TCP10W 长连接到 Nginx/HAproxy 这一步,没有问题。
    软件负载到实际业务这里,由于负载均衡(Nginx) 是采用转发的方式进行处理的,本地会创建连接,当转发超出 65535 时,(Nginx)就不能建立长连接了。请问要进行哪些配置?

    Ps: Linux 系统调优参数基本已经设置过了,应该不是这里的问题。

    V2er 人才多,有没有遇到过的大佬。
    第 1 条附言  ·  2017-12-15 16:00:37 +08:00
    7 条回复    2020-04-02 16:17:02 +08:00
    yaoliyc
        1
    yaoliyc  
       2017-12-15 15:22:38 +08:00
    65535 那是 ipv4 协议本身的限制,配什么应该没什么用,nginx 到实际业务之间为什么要长连接?
    pubby
        2
    pubby  
       2017-12-15 15:37:28 +08:00 via Android
    端口用光了吧,实际业务配多个端口或开多个业务进程可解决单机连接数限制
    0ZXYDDu796nVCFxq
        3
    0ZXYDDu796nVCFxq  
       2017-12-15 15:45:04 +08:00   ❤️ 1
    我处理过 50 万长连接的业务

    nginx --> 实际业务服务器
    在 nginx 这里采用多个内网 IP,这些 IP 使用 proxy_bind 来指定

    可参考
    https://nginx.org/r/proxy_bind
    play78
        4
    play78  
    OP
       2017-12-15 15:58:36 +08:00
    @gstqc
    谢谢你,应该就是这个了。 ヾ(・ω・`。)
    play78
        5
    play78  
    OP
       2018-01-05 08:46:54 +08:00
    @gstqc
    你好,还是想问一下你,你这个 nginx.conf 是怎么配置的,
    我配置了几个虚拟网卡,但是通过 proxy_bind 好像只能指定到一个 IP
    下面这个只能绑定一个 IP,如果要绑定多个 IP 要怎么操作
    proxy_bind 192.168.0.1;
    下面这个动态绑定,但是只能根据客户端连接进来的 IP,进行分配,不能进行负载
    proxy_bind $server_addr;

    请问,proxy_bind 有没有类似 proxy_pass 一样可以后面接一个 upstream 的,然后可以进行负载均衡的
    如果没有,是要自己写脚本分配,还是有插件可以用。

    谢谢,希望你能回复。
    0ZXYDDu796nVCFxq
        6
    0ZXYDDu796nVCFxq  
       2018-01-05 09:08:33 +08:00 via iPhone
    @play78 可以配合 map 指令
    按一定的算法,把连接平均分为若干份,每份 map 到一个本地 IP 的变量
    然后 proxy_bind 这个变量

    比如
    map $remote_addr $proxy_bind_ip {
    *1 192.168.0.1;
    *2 192.168.0.2;
    ...
    }

    proxy_bind $proxy_bind_ip;
    zhengdai1990
        7
    zhengdai1990  
       2020-04-02 16:17:02 +08:00
    想问下 nginx 用 proxy_bind 这种方法最多能撑多少量级的长连接
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2773 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 07:39 · PVG 15:39 · LAX 23:39 · JFK 02:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.