haproxy+keepalived实现高可用集群


haproxy+keepalived实现高可用性集群

一、HAProxy简介

 

HAProxy提供高可用性、负载均衡以及基于TCPHTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

 

HAProxy实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

 

二、Keepalived简介

Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人 工做的只是修复故障的web服务器。

 

三、安装及配置

1、架构图

wKiom1XpqOSx0eO2AACFoOhS9TI303.jpg 

2、环境

OSCentOS 6.5 

HAProxy1.5.4

Keepalived1.2.13

VIP192.168.31.200

Master192.168.31.148

Backup192.168.31.170

Web1192.168.31.105

Web2192.168.31.212

3、安装haproxy

1、可以使用源码包安装

2、可以使用RPM包安装,这里我使用RPM包的方式安装haproxy

[root@haproxy-1 ~]# yum -y install haproxy

3、haproxy的配置文件如下

global

    log         127.0.0.1 local2

    chroot      /var/lib/haproxy

    pidfile      /var/run/haproxy.pid

    maxconn    4000

    user        haproxy

    group      haproxy

    daemon

defaults

    mode                  http

    log                    global

    option                 httplog

    option                 dontlognull

    option http-server-close

    option forwardfor       except 127.0.0.1/8

    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              3000

    stats   uri             /haproxy-stats

frontend static *:80

     acl url_static path_beg   -i  /static /images /javascript /stylesheets

     acl url_static path_end    -i  .jpg .gif .png .css .js 

     use_backend static if url_static

     default_backendapp

backend static 

     balance roundrobin 

     server static 192.168.31.105:80 check 

backend app

     balance roundrobin 

     server app1 192.168.31.212:80 check 

  #两个haproxy节点的配置一样

4、测试haproxy

wKiom1XpqIPgg-sDAACz6E-Ez8I781.jpg 

wKioL1XpquKjc-CxAABP_wNTeEs188.jpg 

4安装keepalived

1、源码包安装

2RPM包安装,我选择RPM包安装

  [root@haproxy-1 haproxy]# yum install keepalived -y

3、主节点的keepalived的配置文件如下,备节点的只需修改红色部分的内容即可,MASTER改为BACKUP,100改为99

global_defs {

   notification_email {

     root@localhostt

   }

   notification_email_from haproxy@localhost

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

vrrp_script chk_haproxy {

    script "lsof -i:80 &>/dev/null"

    interval 1

    weight -2

}

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.31.200

}

track_script {

chk_haproxy

}

}

4、测试keepalived

wKiom1XpqKei1iZxAANQWGSorcA147.jpg 

wKiom1XpqIPgg-sDAACz6E-Ez8I781.jpg 

#haproxy服务停止后

wKioL1XpqrOg6hwmAANVVFBB4YU145.jpg 

wKiom1XpqIPgg-sDAACz6E-Ez8I781.jpg 

 

 

 

 


你可能感兴趣的:(keepalived,集群,负载均衡,高可用性,haroxy)