• Haproxy负载均衡


         HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性负载均衡,以及基于TCPHTTP的应用程序代理
    HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
    HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。
    包括 GitHubBitbucket[3]、Stack Overflow[4]、RedditTumblrTwitter[5][6]和 Tuenti[7]在内的知名网站,及亚马逊网络服务系统都使用了HAProxy。

    配置

    编辑
    配置HAProxy Session亲缘性的三种方式
    haproxy负载均衡保持客户端和服务器Session亲缘性的三种方式:
    1 用户IP 识别
    haproxy 将用户IP经过hash计算后 指定到固定的真实服务器上(类似于nginx 的IP hash 指令)
    配置指令 balance source
     
    2 cookie 识别
    haproxy 将WEB服务端发送给客户端的cookie中插入(或添加前缀)haproxy定义的后端的服务器COOKIE ID。
    配置指令例举 cookie SESSION_COOKIE insert indirect nocache
    用firebug可以观察到用户的请求头的cookie里 有类似" Cookie jsessionid=0bc588656ca05ecf7588c65f9be214f5; SESSION_COOKIE=app1" SESSION_COOKIE=app1就是haproxy添加的内容
     
    3 session 识别
    haproxy 将后端服务器产生的session和后端服务器标识存在haproxy中的一张表里。客户端请求时先查询这张表。
    配置指令例举 appsession JSESSIONID len 64 timeout 5h request-learn
    配置举例:
    #vi /usr/local/haproxy/haproxy.cfg
    backend COOKIE_srv
    mode http
    cookie SESSION_COOKIE insert indirect nocache
    server REALsrv_70 184.82.239.70:80 cookie 11 check inter 1500 rise 3 fall 3 weight 1
    server REALsrv_120 220.162.237.120:80 cookie 12 check inter 1500 rise 3 fall 3 weight 1
    backend SOURCE_srv
    mode http
    balance source
    server REALsrv_70 184.82.239.70:80 cookie 11 check inter 1500 rise 3 fall 3 weight 1
    server REALsrv_120 220.162.237.120:80 cookie 12 check inter 1500 rise 3 fall 3 weight 1
    backend APPSESSION_srv
    mode http
    appsession JSESSIONID len 64 timeout 5h request-learn
    server REALsrv_70 184.82.239.70:80 cookie 11 check inter 1500 rise 3 fall 3 weight 1
    server REALsrv_120 220.162.237.120:80 cookie 12 check inter 1500 rise 3 fall 3 weight 1
     

    启动

    编辑
    #启动haproxy
    /usr/local/haproxy/haproxy -f
    #查看是否启动
    [zhangy@BlackGhost haproxy]$ ps -ef|grep haproxy
    4859 ? 00:00:00 haproxy
    4860 ? 00:00:00 haproxy
     

    说明

    编辑
    HAProxy监听的端口是1080,代理192.168.18.2:10000,127.0.0.1:10000
    统计监听的是8888端口 http://localhost:8888/haproxy-stats
  • 相关阅读:
    html分页自适应居中;css设置分页自适应居中
    jQuery如何给DOM添加ID
    jquery如何获取div下ul的某个li
    js正则验证数字的方法
    css改变input输入框placeholder值颜色
    js校验表单后提交表单的三种方法总结
    Thinkcmf子栏目获取父级栏目所有子栏目列表
    Thinkcmf截取内容长度
    thinkcmf2.2 火狐浏览器图片上传以及谷歌图片上传打开稍慢
    c语言结构体中的冒号的用法
  • 原文地址:https://www.cnblogs.com/wangnengwu/p/7388423.html
Copyright © 2020-2023  润新知