keepalived可以認爲是VRRP協議在Linux上的實現,主要有三個模塊,分別是core、check和vrrp。core模塊爲keepalived的核心,負責主進程的啓動、維護以及全局配置文件的加載和解析。check負責健康檢查,包括常見的各種檢查方式。vrrp模塊是來實現VRRP協議的。本文基於如下的拓撲圖:
配置keepalived+nginx的方法比配置keepalived+LA Cluster的方法要簡單 ; 使用nginx做調度器的話 , 只需要將vip進行實時調度 , 不用配置real server (因爲在nginx 上配置) ; 但是需要注意的是 , 假設當前主機沒有出現故障 , 但是nginx服務出現故障怎麼辦 ? 至需要檢測nginx服務是否正常運行 , 如果沒有正常運行 , 權重值減一定的數值 , 使status 變爲 backup 就可以了 ;
1.1 配置nginx做爲反代理服務器
在http配置段中添加upstream配置文 :
upstream SERVER_NAME {
server IP-1;
server IP-2;
}
在server配置段中的location 中添加配置文
location / {
proxy_pass http:SERVER _NEMA;
}
兩臺nginx反代服務器配置好後啓動 , 並做測試 :
要確定好nginx反代服務器能夠正常運行 ;
1.2 修改keepalived.conf配置文件 :
用nginx作調度器(director) 關鍵兩點 :
(1) 網絡資源的實時轉移 (基於vrrp協議的實現)
(2) 實時監測nginx反代服務器的健康狀態
所以配置文如下 :