什么是高可用:
在使用 Nginx 做反向代理或者負載均衡的時候,都是以 Nginx 為入口,如果 Nginx 宕機了,那么所有的服務都無法正常提供,影響非常嚴重。所有我們需要保證 nginx 高可用,就是配置備份機,前一個掛了,還有后一個。
為了避免負載均衡服務器宕機造成嚴重影響,就需要建立一個備份機。主服務器和備份機上都運行高可用(High Availability)監控程序,通過傳送諸如“I am alive”這樣的信息來監控對方的運行狀況。當備份機不能在一定的時間內收到這樣的信息時,它就接管主服務器的服務IP并繼續提供負載均衡服務;當備份管理器又從主管理器收到“I am alive”這樣的信息時,它就釋放服務IP地址,這樣的主服務器就開始再次提供負載均衡服務。
高可用(High Availability)是分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計減少系統不能提供服務的時間。如果一個系統能夠一直提供服務,那么這個可用性則是百分之百,但是我們不能保證一個系統能永遠不出問題,所以我們只能通過設計來盡可能的去減少由于系統的故障所造成的影響。
Keepalived:
Keepalived是一款由C編寫的軟件,一般解決負載均衡器的高可用性問題,提供了負載均衡、健康檢查和高可用的功能,高可用功能是由VRRP協議來實現的。
一、Keepalived安裝
在Red Hat 系服務器上安裝
yum install keepalived -y
在Debian系服務器上安裝
apt install keepalived -y
四、keepalived配置
- 全局配置定義
# 全局定義標識
global_defs {# 通知收件人地址notification_email {emailemail}# 通知發送郵件地址notification_email_from email# smtp服務器地址smtp_server host# smtp服務器連接超時時間smtp_connect_timeout num# 指定LVS導向器的名字lvs_id string
}
- 虛擬路由定義
vrrp_instance VI_1 { #定義實例state MASTER #指定keepalived節點的初始狀態,可選值為MASTER|BACKUPinterface eth0 #VRRP實例綁定的網卡接口,用戶發送VRRP包virtual_router_id 51 #虛擬路由的ID,同一集群要一致priority 100 #定義優先級,按優先