一、keepalived
創(chuàng)新互聯(lián)公司主營即墨網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app軟件開發(fā),即墨h5微信平臺小程序開發(fā)搭建,即墨網(wǎng)站營銷推廣歡迎即墨等地區(qū)企業(yè)咨詢Keepalived的作用是檢測服務器的狀態(tài),如果有一臺web服務器宕機,或工作出現(xiàn)故障,Keepalived將檢測到,并將有故障的服務器從系統(tǒng)中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常后Keepalived自動將服務器加入到服務器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的服務器。
安裝keepalived
yum方式直接安裝即可,該方式會自動安裝依賴:
Copy
yum -y install keepalived
修改主機(192.168.30.21)keepalived配置文件
yum方式安裝的會生產(chǎn)配置文件在/etc/keepalived下:
Copy
vi keepalived.conf
keepalived.conf:
Copy
#檢測腳本
vrrp_script chk_http_port {
script "/usr/local/src/check_nginx_pid.sh" #心跳執(zhí)行的腳本,檢測nginx是否啟動
interval 2 #(檢測腳本執(zhí)行的間隔,單位是秒)
weight 2 #權重
}
#vrrp 實例定義部分
vrrp_instance VI_1 {
state MASTER # 指定keepalived的角色,MASTER為主,BACKUP為備
interface eth0 # 當前進行vrrp通訊的網(wǎng)絡接口卡(當前centos的網(wǎng)卡) 用ifconfig查看你具體的網(wǎng)卡
virtual_router_id 66 # 虛擬路由編號,主從要一致
priority 100 # 優(yōu)先級,數(shù)值越大,獲取處理請求的優(yōu)先級越高
advert_int 1 # 檢查間隔,默認為1s(vrrp組播周期秒數(shù))
#授權訪問
authentication {
auth_type PASS #設置驗證類型和密碼,MASTER和BACKUP必須使用相同的密碼才能正常通信
auth_pass 1111
}
track_script {
chk_http_port #(調用檢測腳本)
}
virtual_ipaddress {
192.168.30.20 # 定義虛擬ip(VIP),可多設,每行一個
}
}
virtual_ipaddress 里面可以配置vip,在線上通過vip來訪問服務。
interface需要根據(jù)服務器網(wǎng)卡進行設置通常查看方式ip addr
authentication配置授權訪問后備機也需要相同配置
修改備機(192.168.30.22)keepalived配置文件
keepalived.conf:
Copy
#檢測腳本
vrrp_script chk_http_port {
script "/usr/local/src/check_nginx_pid.sh" #心跳執(zhí)行的腳本,檢測nginx是否啟動
interval 2 #(檢測腳本執(zhí)行的間隔)
weight 2 #權重
}
#vrrp 實例定義部分
vrrp_instance VI_1 {
state BACKUP # 指定keepalived的角色,MASTER為主,BACKUP為備
interface eth0 # 當前進行vrrp通訊的網(wǎng)絡接口卡(當前centos的網(wǎng)卡) 用ifconfig查看你具體的網(wǎng)卡
virtual_router_id 66 # 虛擬路由編號,主從要一直
priority 99 # 優(yōu)先級,數(shù)值越大,獲取處理請求的優(yōu)先級越高
advert_int 1 # 檢查間隔,默認為1s(vrrp組播周期秒數(shù))
#授權訪問
authentication {
auth_type PASS #設置驗證類型和密碼,MASTER和BACKUP必須使用相同的密碼才能正常通信
auth_pass 1111
}
track_script {
chk_http_port #(調用檢測腳本)
}
virtual_ipaddress {
192.168.30.20 # 定義虛擬ip(VIP),可多設,每行一個
}
}
檢測腳本:
Copy
#!/bin/bash
#檢測nginx是否啟動了
A=ps -C nginx --no-header |wc -l
if [ $A -eq 0 ];then #如果nginx沒有啟動就啟動nginx
service nginx start #啟動nginx
if [ ps -C nginx --no-header |wc -l
-eq 0 ];then #nginx重啟失敗,則停掉keepalived服務,進行VIP轉移
killall keepalived
fi
fi
腳本授權:chmod 775 check_nginx_pid.sh
說明:腳本必須通過授權,不然沒權限訪問啊,在這里我們兩條服務器執(zhí)行、VIP(virtual_ipaddress:192.168.30.20),我們在生產(chǎn)環(huán)境是直接通過vip來訪問服務。
模擬nginx故障:
修改兩個服務器默認訪問的Nginx的html頁面作為區(qū)別。
首先訪問192.168.30.20,通過vip進行訪問,頁面顯示192.168.30.21;說明當前是主服務器提供的服務。
這個時候192.168.30.21主服務器執(zhí)行命令:
Copy
systemctl stop nginx; #停止nginx
再次訪問vip(192.168.30.20)發(fā)現(xiàn)這個時候頁面顯示的還是:192.168.30.21,這是腳本里面自動重啟。
現(xiàn)在直接將192.168.30.21服務器關閉,在此訪問vip(192.168.30.20)現(xiàn)在發(fā)現(xiàn)頁面顯示192.168.30.22這個時候keepalived就自動故障轉移了,一套企業(yè)級生產(chǎn)環(huán)境的高可用方案就搭建好了。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。