實現基於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宕機
實現基於Haproxy_NAT+Keepalived負載均衡高可用架構