haproxy

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

1)配置haproxy
    haproxy-1.4.23.tar.gz
    yum install rpm-build pcre-devel -y
    
    cd /etc/haproxy/
    vim haproxy.cfg
    配置文件以下
    # this config needs haproxy-1.1.28 or haproxy-1.2.1

    global
        log 127.0.0.1   local0
        #log 127.0.0.1   local1 notice    
        log localhost    local0 info    日志等级,有erro,debug,waring等等
        maxconn 4096            最大连接量
        chroot /usr/share/haproxy
        uid 99
        gid 99
        daemon
        #debug
        #quiet

    defaults
        log     global
        mode    http
        option  httplog        
        option  dontlognull    
        retries 3        重复连接三次都失败,则说明此服务器不可用
        option redispatch    若是一台real server坏掉,让其它好的节点接管
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

    listen  www.semir.org *:80    
        cookie  SERVERID rewrite                            服务ID
        balance roundrobin                                负载算法
        server  web1 192.168.0.62:80 cookie app1inst1 check inter 2000 rise 2 fall 5    real server1
        server  web2 192.168.0.236:80 cookie app1inst2 check inter 2000 rise 2 fall 5    real server2

    listen stats_auth 192.168.0.209:8080    这里是对监控页面所作的加密
        stats enable            
        stats uri /status        监控页面
        stats auth semir:westos        监控账号和密码
        stats refresh 5s         刷新频率
    
    # mkdir /usr/share/haproxy
    #/etc/init.d/haproxy start

    配置日志信息
    vim /etc/rsyslog.conf
        # Provides UDP syslog reception
        #$ModLoad imudp
        #$UDPServerRun 514            #打开这两行#

        local0.*                                                /var/log/haproxy.log

2)经过keepalive来调度haproxy
    首先配置keepalive
    ! Configuration File for keepalived

    vrrp_script check_haproxy {
        script "/opt/check_haproxy.sh    #听过调用脚原本控制haproxy的状态
        interval 2            
        weight 2
    }
    global_defs {
       notification_email {
         root@localhost  
       }
       notification_email_from keepalive@server62.exaple.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
    }

    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 111
        priority 50
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 1111
        }
        virtual_ipaddress {
        192.168.0.68
        }
        track_script {

        check_haproxy           #这里调用刚才创建那个资源
    }
    }

vim /opt/check_haproxy.sh
    #!/bin/bash

    [ -f /var/run/haproxy.pid ] || /etc/init.d/haproxy restart &> /dev/null #经过查看进程pid来判断haproxy的状态,
    
    if [ $? -ne 0 ];
    then
        /etc/init.d/keepalived stop &> /dev/null            #若是haproxy没有正确启动的话,那么keepalive也会被关掉
    fi


web

相关文章
相关标签/搜索