Web服务器集群——Haproxy搭建Web群集

                                           第十二章 Haproxy搭建Web群集

一、各类负载均衡器对比
1、LVS:
(1)优点
①抗负载能力强
工作在第4层仅做分发,没有流量产生
③工作稳定,自身有完整的热备方案(keepalived或heartbeat)
应用范围广,可以对所有应用做负载均衡
⑤配置性比较低,出错率低
(2)缺点
不支持正则处理,不能做动静分离
②如果网站应用比较庞大,LVS/DR+Keepalived就比较负载
2、Nginx:
(1)优点
工作在第七层,可针对http应用做一二写分流策略。如针对域名、目录结构等。它的正则比Haproxy更为强大和灵活
②对于网络依赖小,理论上能ping通就能进行负载功能
③安装和配置简单,测试比较方便
可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量
⑤可通过端口检测服务器内部故障,并根据网页返回码状态、超时等把返回错误请求转到其他节点
⑥除了负载均衡,同时也是功能强大的Web服务器
可作为Web反向加速缓存
(2)缺点
①不支持url来检测
仅支持http和email的调度
③session保持,cookie的引导能力相对欠缺
3、Haproxy:
(1)优点
支持虚拟主机,可工作在4/7层(支持多网段)
能够补充nginx的一些缺点,比如session保持,cookie的引导工作
③支持url检测后端的服务器
效率及并发处理上优于nginx
⑤可以对mysql读进行负载均衡,对后端的mysql节点进行检测和负载均衡(mysql服务器超过10台后不如LVS)
算法较多:rr、wrr、lc、wlc
1)source:根据请求源IP,跟nginx的ip_hash机制类似,可作为解决session问题的一种方法
2)ri:根据请求的URL
3)ri_param:根据请求的URL参数balanc url_param requires an URL parameter name
4)hdr(name):表示根据HTTP请求头来锁定每一次HTTP请求
5)rdp-cookie(name):根据cookie(name)来锁定并哈希每一次TCP请求二、案例实施
1、配置节点服务器(过程参照nginx安装配置)
2、编译安装Haproxy
(1)yum install -y pcre-devel bzip2-devel gcc gcc-c++
(2)tar -zxf haproxy-1.4.24.tar.gz
(3)cd haproxy-1.4.24
(4)make TARGET=linux26
(5)make install
3、Haproxy配置
(1)建立配置文件
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy
mkdir -p /usr/share/haproxy
cp examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
(2)修改配置文件

global
    log 127.0.0.1    local0        #配置日志记录,local0为日志设备,默认存放到系统日志
    log 127.0.0.1    local1 notice    #notice为日志级别,通常有24个级别
    #log loghost    local0 info
    maxconn 4096            #最大连接数
    chroot /usr/share/haproxy
    uid 99                #用户uid
    gid 99                #用户gid
    daemon
    #debug
    #quiet

defaults
    log    global            #定义日志为global配置中的日志定义
    mode    http            #模式为http
    option    httplog            #采用http日志格式记录日志
    option    dontlognull        #不记录健康检查的日志信息
    retries    3            #检查节点服务器失败次数
#    redispatch            #如果后端有服务器宕机,强制切换到正常服务器
    maxconn    2000            #最大连接数
    contimeout    5000        #连接超时时间
    clitimeout    50000        #客户端超时时间
    srvtimeout    50000        #服务器超时时间


listen    web1 0.0.0.0:80
    option    httpchk /index.html    #检查服务器的index.html文件
    balance    roundrobin        #算法
#    cookie    SERVERID insert indirect nocache
    server    inst1 192.168.1.21:80 check inter 2000 fall 3        #定义在线节点
    server    inst2 192.168.1.22:80 check inter 2000 fall 3        #定义备份节点

4、优化
 

参数说明优化建议
maxconn最大连接数根据应用实际使用情况调整,推荐使用10240
daemon守护进程模式生产环境建议使用守护进程模式启动
hbproc负载均衡的并发进程数建议与当前服务器CPU核数相等或两倍
retries重试次数主要用于集群节点检查,如节点多且并发量大可设置为2-3次;节点少可设置5-6次
option http-server-close主动关闭http请求建议生产环境中使用,避免由于timeout时间过长导致http连接堆积
timeout http-keep-alive长连接超时时间设置长连接超时时间,具体可参考应用自身特点,可设置为10s
timeout http-requesthttp请求超时时间建议设置为5-10s,增加http连接释放速度
timeout client客户端超时时间如果访问量过大,节点相应过慢,可将时间设置短些,建议1分钟左右即可

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值