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

實驗思路:

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宕機

bf9e3d7def3e4613ffe65527b26bd976.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章