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

相關文章
相關標籤/搜索