通过Haproxy代理来实现跨区域的tcp分布式服务


前一篇文章讲述了http的代理,这篇主要讲解tcp的代理,虽然nginx也可以,不过仍然不推荐使用nginx代理tcp协议,推荐使用Haproxy来代理TCP


方法:

    1:将提供服务的域名做dns智能负载均衡,将不同区域或线路的用户解析到相应区域的服务器上.可参考cloudxns

    2:将其他区域的代理服务通过Haproxy代理到真实的服务上.Haproxy配置大致如下:

     

#全局配置参数,进程级的,用来控制Haproxy启动前的一些进程及系统设置
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    user        haproxy
    group       haproxy
    daemon
    maxconn     4096
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats
    
    nbproc 1
    spread-checks           4
    tune.maxaccept          8
    tune.maxpollevents      100
    

#配置一些默认的参数,可以被frontend,backend,listen段继承使用
defaults
    mode                    http
    log                     global
    option                  dontlognull
    option                  log-health-checks //记录健康检测日志
    option                  redispatch //在连接失败或断开情况下,允许当前会话被重新分发
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 100000
        


listen tcp1 0.0.0.0:1215
    mode tcp
    option tcplog
    balance roundrobin
    server tcp_s1 192.168.1.121:1215

 这样通过简单的dns智能负载均衡做了一个跨区域的分布式服务

此条目发表在 好文推荐, 网站架构 分类目录。将固定链接加入收藏夹。

评论功能已关闭。