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-request http请求超时时间 建议设置为5-10s,增加http连接释放速度
timeout client 客户端超时时间 如果访问量过大,节点相应过慢,可将时间设置短些,建议1分钟左右即可

 

你可能感兴趣的:(云计算,Linux,php集群,linux)