安裝配置keepalived 2.0,實現nginx+keepalived高可用
https://www.51anidea.com/forum.php?mod=viewthread&tid=1339
(出處: Linux教程網)php
1、環境
服務器系統版本:CentOS 7
兩臺服務器,一臺作主節點,一臺作備用節點:
192.168.1.200(主節點)
192.168.1.201(備用節點)html
2、安裝keepalived 2.0
兩臺服務器都安裝上 keepalived 2.0。nginx
一、安裝依賴包(libnl庫-簡化netlink 協議對象的實現、gcc-GNU編譯器套件、openssl-devel-包含開發支持各類密碼算法和協議的應用程序所需的文件的庫包)
#yum install -y libnl-devel libnl3-devel libnfnetlink-devel gcc openssl-develweb
二、訪問keepalived官網下載安裝包:
#wget https://www.keepalived.org/software/keepalived-2.0.18.tar.gz算法
三、解壓keepalived安裝包:
#tar -zxvf keepalived-2.0.18.tar.gz 瀏覽器
四、安裝keepalived:
#mkdir /usr/local/keepalived(建立安裝目錄)
#cd keepalived-2.0.18切換到(安裝目錄下)
#./configure --prefix=/usr/local/keepalived(指定位置下安裝源代碼)
#make(編譯)
#make install(源代碼安裝)
檢查keepalived版本號
#/usr/local/keepalived/sbin/keepalived -v
複製keepalived配置文件到 /etc/keepalived/ 目錄下:
#mkdir /etc/keepalived(建立目錄)
#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
(啓動 keepalived 時,默認會去 /etc/keepalived 目錄下找 keepalived.conf 文件)
keepalived日誌文件路徑:/var/log/messages服務器
3、配置keepalived
192.168.1.200(主節點)上操做:
一、配置keepalived文件
#vi /etc/keepalived/keepalived.conf
將默認的配置文件內容清空(%d),輸入如下內容:
vrrp_instance VI_1 { ### 實例名稱,VI_1即實例名。
state MASTER ### 標記該節點是主節點(master)
interface ens33 ### 配置vip綁定的網卡,ens33是網卡名,按照實際狀況修改爲你本身(網卡名查詢:ifconfig)。vip指的是虛擬ip地址。
virtual_router_id 51 ### 取1-255之間的值,主備節點的值須要設置成同樣的,成爲一個組。
priority 100 ### 權重,數值大的節點是master。
advert_int 1 ### 主備節點之間通信的間隔秒數,用於判斷主節點是否存活。
authentication {
auth_type PASS ### 認證方式
auth_pass 1111 ### 認證密碼
}
virtual_ipaddress {
192.168.1.100 ### vip地址
}
}
保存文件:wq,退出。ide
二、啓動keepalived:
#systemctl start keepalived測試
三、查看主節點的地址信息:
#ip addr
輸出以下信息:
能夠看到,在 ens33 網卡下面,已經出現了vip:192.168.1.100idea
四、在192.168.1.102(備用節點)上操做:
編輯keepalived.conf配置文件:
#vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP ### 標記該節點是備用節點(backup)
interface ens33 ### 配置vip綁定的網卡,eno16777736是網卡名,按照實際狀況修改爲你本身###的網卡名。### vip指的是虛擬ip地址。
virtual_router_id 51 ### 取1-255之間的值,主備節點的值須要設置成同樣的,成爲一個組。
priority 66 ### 權重,數值小的節點是backup。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 ### 設置成跟主節點同樣的vip地址。
}
}
保存文件,退出。
五、啓動 keepalived:
#systemctl start keepalived
查看備用節點的地址信息:# ip addr
輸出以下信息:
從上圖能夠看出,備用節點沒有vip地址。vip地址在主節點上。
4、實驗驗證nginx+keepalived高可用
一、在主備節點上都安裝好nginx。nginx安裝方法:
https://www.51anidea.com/forum.php?mod=viewthread&tid=266&extra=page%3D1
二、安裝好以後,編輯nginx的主頁文件。
192.168.1.200(主節點)上操做:
#vi /usr/share/nginx/html/index.html
清空該文件的內容,輸入如下內容:
200
保存文件,退出。
三、192.168.1.102(備用節點)上操做:
#vi /usr/share/nginx/html/index.html
清空該文件的內容,輸入如下內容:
201
保存文件,退出。
四、測試
(1)測試虛擬(網址)ip跳轉的服務器網址(主節點)
打開瀏覽器,訪問 192.168.1.200:81(ip+端口號)(主節點)的web頁面:
輸出結果爲200-主節點的內容
訪問192.168.1.201:81(備用節點)的web頁面
輸出結果爲201-備用節點內容
訪問192.168.1.100:81(vip虛擬ip)的web網頁
輸出結果爲200——主節點
由於vip地址在備用節點 192.168.1.102 上,因此訪問vip地址會跳轉到備用節點上。
(2)故障測試----當主節點出現故障或者宕機時,虛擬ip是否能跳轉至備用節點。
a、經過中止主節點的 keepalived服務來模擬故障。
192.168.1.106(主節點)上操做:
中止keepalived服務:
#systemctl stop keepalived
b、訪問虛擬ip(vip)192.168.1.100:80
輸出內容爲201------說明當主節點宕機時,虛擬ip將會跳轉至備用節點。
(3)主節點上線時,vip是否能跳轉至主節點
a、主機點開啓keepalived服務
#systemctl start keepalived
b、訪問vip
瀏覽器打開192.168.1.100
輸出內容200-----主節點。說明主節點上線時,vip將會跳轉至主節點。
5、在實際生產環境中把vip地址(或者vip地址對應的域名)提供給用戶訪問,以達到高可用的目的。