1. 程式人生 > >實現基於Haproxy_NAT+Keepalived負載均衡高可用架構

實現基於Haproxy_NAT+Keepalived負載均衡高可用架構

haproxy

技術分享

實驗思路:

1.做這個實驗首先可以想象一個場景,用戶訪問webserver的時候首先會經過調度器,首先需要明白的一點就是一般公司一般是在內網,客戶端是通過外網訪問webserver的。

2.haproxy是一個負載均衡器,Keepalived通過VRRP功能能再結合LVS負載均衡軟件即可部署一個高性能的負載均衡集群系統,也就是說haproxy是解決後端realserver負載均衡的問題,keepalived是解決調度器的高可用的問題。

3.haproxy檢測到後端服務器處於不健康的狀態的時候會把後端realserver給剔除,通過權重的大小把客戶端的訪問調度到不同的realserver上;通過keepalived實現地址的漂移,當主調度器出現狀況,就會把後端的realserver服務轉移到另外一臺調度器上。

4.需要特別註意的就是,haproxy可以自己尋找網關,不需要路由轉發的功能。會把客戶端的請求當做自己的請求拿到資源然後再返回給客戶端,充當了代理的功能,也就是說並不需要dip,如果是一臺調度器,可以自己的外網卡充當vip,因為這個時候不需要實現調度,不需要地址的漂移功能,如果是多臺調度器需要配置vip實現地址的漂移,這個時候主壞掉,才能實現webserver所指向 的調度器變成從,從而實現webserver的訪問(意思就是單臺調度器vip可要可不要)。

實驗準備:

兩臺centos7準備realserver,兩臺centos6準備用於做haproxy主從架構,防火墻關閉、各節點時鐘服務同步、各節點之間可以通過主機名互相通信。realserver還是小米電子網站。

實驗步驟:

第一步:配置keepalived,配置虛擬ip。

主機1.vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 30

priority 98

advert_int 1

# nopreempt

authentication {

auth_type PASS

auth_pass magedu

}

virtual_ipaddress {

172.17.120.120

}

notify_backup "/etc/keepalived/notify.sh backup"

notify_master "/etc/keepalived/notify.sh master"

notify_fault "/etc/keepalived/notify.sh fault"

}

主機2.vrrp_instance VI_1 {

state MASTER

interface eth1

virtual_router_id 30

priority 100

advert_int 1

#nopreempt

authentication {

auth_type PASS

auth_pass magedu

}

virtual_ipaddress {

172.17.120.120

}

notify_backup "/etc/keepalived/notify.sh backup"

notify_master "/etc/keepalived/notify.sh master"

notify_fault "/etc/keepalived/notify.sh fault"

}

第二步:配置haproxy,連接realserver。

1.全局配置

log 127.0.0.1 local2 --日誌配置,配合rsyslog使用,在rsyslog中定義完成後要記得重啟rsyslog服務。Centos6自己創建定義的日誌文件目錄。

chroot /var/lib/haproxy

pidfile /var/run/haproxy.pid

maxconn 4000

user haproxy

group haproxy

daemon

2.haproxy狀態檢測頁面

listen stats

mode http

bind 0.0.0.0:1080

stats enable

stats uri /haproxyadmin

stats auth admin:admin

stats admin if TRUE

3.客戶端限制配置

frontend web

bind :80

default_backend lnmp-server

4.realserver端配置

backend lnmp-server

balance roundrobin

option httpchk GET /index.html ---這個健康檢測頁面配置了就要有,沒有就會認為realserver有誤。

server lnmpserver1 172.17.252.78:80 check inter 3000 rise 3 fall 5

server lnmpserver2 172.17.110.110:80 check inter 3000 rise 3 fall 5

完整配置

技術分享

5.復制一份給另外一臺haproxy,保證配置是一樣的。

第三步:測試界面

1.backup宕機

技術分享

2.master宕機

技術分享

實現基於Haproxy_NAT+Keepalived負載均衡高可用架構