Nginx+Keepalived搭建高可用Web服務器詳細教程,基於最新版Keepalived2.0.20實現的安裝與配置

 

目錄

前言

Nginx+Keepalived搭建高可用Web服務器詳細教程

一、準備 Keepalived 安裝環境

二、Keepalived 下載

三、獲取 Keepalived 安裝包

四、編譯 Keepalived

五、安裝 Keepalived

六、配置 Keepalived

七、啓動 Keepalived

八、Keepalived 日誌輸出

九、Keepalived 自定義日誌輸出

十、安裝 Nginx 服務器

十一、修改 Nginx

十二、Nginx+Keepalived高可用測試


前言

Nginx 在當前作爲最常見的負載均衡服務器,系統中基本上所有的請求都會到 Nginx,可見 Nginx 在整個系統運行過程中處於重要的地位,一旦Nginx服務器宕機,所有後端 web 服務將無法正常提供服務,如果涉及到高度重要的數據,例如:財務數據等,後果將不堪設想。

爲了屏蔽 Nginx 負載均衡服務器的宕機,至少需要建立一個主/備服務器。主服務器和備份服務器上都運行高可用監控程序,通過組播消息來監控對方的運行狀況。當備份機不能在一定的時間內收到組播消息時,它就接管主服務器的服務IP並繼續提供負載均衡服務;當備份管理器又從主管理器收到主服務器的組播消息時,備份服務器將主動釋放服務IP地址,這樣,主服務器就開始再次提供負載均衡服務了。

在上一篇文章中對 《 VRRP協議的工作機制介紹,Keepalived內部架構及其實現原理解析 》進行了認識和了解,本片文章主要對將Nginx+Keepalived 搭建高可用Web服務器詳細教程。是基於當前最新版本的Keepalived2.0.20來配置的,因爲老版本和新版本的配置的區別很大的,更多的具體的相關內容,請點擊文章末尾的官網連接進行了解。感謝支持!!!

 

Nginx+Keepalived搭建高可用Web服務器詳細教程

一、準備 Keepalived 安裝環境

安裝 Keepalived 安裝必須的環境:

yum install -y gcc-c++ kernel-devel* openssl-* popt-devel openssh-clients libnl libnl-devel libnfnetlink-devel popt

安裝組件如下圖:

 

二、Keepalived 下載

可以在官網去下載:【Keepalived官網

當然也可以支持哈博主:【Keepalived-2.0.20 Linux版本下載

 

三、獲取 Keepalived 安裝包

上傳到Linux服務器,並輸入命令 “ tar -zxf keepalived-2.0.20.tar.gz ” 解壓,獲得Keepalived包,如下圖:

 

四、編譯 Keepalived

進入Keepalived包,配置Keepalived安裝目錄,輸入指令 “ ./configure --prefix=/usr/local/keepalived ” ,編譯過後如下圖:

 

五、安裝 Keepalived

輸入指令 “ make && make install ” 進行安裝,安裝完成後,進入到目錄 /usr/local/ 下可以看到 Keepalived 目錄,如下圖:

 

查看Keepalived 版本,輸入指令 “ /usr/local/keepalived/sbin/keepalived -v ”,如下圖:

 

六、配置 Keepalived

創建文件夾 /etc/keepalived ,並將 Keppalived 的配置文件 “ /usr/local/keepalived/etc/keepalived/keepalived.conf ”複製到 /etc/keepalived 目錄下,因爲 keepalived 服務啓動的是後,默認會去 /etc/keepalived 目錄下加載配置文件 " keepalived.conf "

[root@192 /]# mkdir /etc/keepalived/ -p
[root@192 /]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@192 /]# 

 

keepalived 主節點配置:

自定義配置文件,清空(:%d)原 keepalived.conf 配置文件,鍵入如下VRRP配置即可(其實,Keepalived 核心爲VRRP,配置個VRRP實例就可以了):

vrrp_instance VIP_1 { ### 實例名稱,VIP_1即實例名
        state MASTER ### 標記該節點是主節點(master)
        interface ens33 ### 配置vip綁定的網卡,ens33是網卡名,按照實際情況修改成你自己(網卡名查詢:ifconfig)。vip指的是虛擬ip地址
        virtual_router_id 51 ### 取1-255之間的值,主備節點的值需要設置成一樣的,成爲一個組
        priority 100 ### 權重,該數值最大的節點即爲主節點
        advert_int 1 ### 主備節點之間通訊的時間間隔(單位:秒),用於判斷主節點是否存活
        authentication {
                auth_type PASS ### 認證方式
                auth_pass 123456 ### 認證密碼
        }
        virtual_ipaddress {
                192.168.159.199 ### vip地址
        }
}

 

keepalived 備節點配置:

自定義配置文件,清空(:%d)原 keepalived.conf 配置文件,鍵入如下VRRP配置即可(其實,Keepalived 核心爲VRRP,配置個VRRP實例就可以了):

vrrp_instance VIP_1 { ### 實例名稱,VIP_1即實例名
	state BACKUP ### 標記該節點是備用節點(backup)
	interface ens33 ### 配置vip綁定的網卡,eno16777736是網卡名,按照實際情況修改成你自己###的網卡名。vip指的是虛擬ip地址
	virtual_router_id 51 ### 取1-255之間的值,主備節點的值需要設置成一樣的,成爲一個組
	priority 99 ### 權重,該數值必須小於主節點
	advert_int 1 ### 主備節點之間通訊的時間間隔(單位:秒),用於判斷主節點是否存活
	authentication {  ### 身份認證
		auth_type PASS ### 認證方式
		auth_pass 123456 ### 認證密碼
	}
	virtual_ipaddress {
                192.168.159.199 ### vip地址,設置成跟主節點一樣的vip地址
	}
}

 

七、啓動 Keepalived

輸入啓動指令 “ systemctl start keepalived ”,keepalived 啓動成功後,輸入指令 “ ip addr ”,可以看到 keepalived 的VIP地址,如下圖:

 

啓動 keepalived:systemctl start keepalived

重啓 keepalived:systemctl restart keepalived

停止 keepalived:systemctl stop keepalived

 

八、Keepalived 日誌輸出

keepalived 默認輸出日誌 “ /var/log/messages ”文件中,輸入指令 “ tail -f /var/log/messages ”,如下圖:

 

九、Keepalived 自定義日誌輸出

自定義配置 keepalived 日誌文件,爲什麼需要自定義?,因爲 messages 日誌文件 Linux 下是用來記錄 Linux 內核消息及各種應用程序的公共日誌信息文件,其中包括了啓動、IO錯誤、網絡錯誤、程序錯誤等等。魚龍混雜,所以,如果需要更方便的查看keepalived日誌,就需要單獨的分離出來,

分離 keepalived 日誌文件,

第一步:

將 keepalived 日誌輸出到 local0 ,輸入指令 “ vi /usr/local/keepalived/etc/sysconfig/keepalived ”,

在文件中修改“ KEEPALIVED_OPTIONS ”的參數爲 “ -D -d -S 0 ”,如下圖:

 

第二步:

在系統日誌配置文件“ rsyslog.conf ”的末尾添加 local0 映射的文件,

輸入指令:vi /etc/rsyslog.conf

添加內容爲:local0.*  /var/log/keepalived.log

 

第三步:

重啓服務

重啓 rsyslog 服務:systemctl restart rsyslog

重啓 keepalived 服務:systemctl restart keepalived

 

第三步:

查看 Keepalived 自定義日誌文件

進入配置的 keepalived 日誌目錄,會看到 “ keepalived.log ”日誌文件,

實時查看 keepalived 日誌的輸出,輸入指令:tail -f keepalived.log

如下圖:

 

十、安裝 Nginx 服務器

在主節點/備份節點上安裝 nginx 服務器,參考【Centos-7.2 下 Nginx-1.9.9 安裝圖文詳解

 

十一、修改 Nginx

這兒爲了便於測試,需要作一個簡單的修改,以區分通過VIP訪問時,當前正在訪問那臺服務器,

輸入指令:vi /usr/local/nginx/html/index.html

修改如下圖:

*注:這兒使用的128表示IP地址爲192.158.159.128的服務器,133表示IP地址爲192.168.159.133的服務器。

 

十二、Nginx+Keepalived高可用測試

訪問主節點(192.168.159.128)服務器,如下圖:

 

訪問備節點(192.168.159.133)服務器,如下圖:

 

訪問Keepalived的VIP地址(192.168.159.199),如下圖:

 

模擬主節點(128服務器)宕機的情況

查看VIP是否能跳轉至備用節點(133服務器),

手動關閉主節點(128服務器),

輸入指令:systemctl stop keepalived

刷新VIP地址,顯示內容如下:

模擬恢復主節點(啓動128服務器)

手動啓動128服務器,查看VIP是否能成功從128備服務器跳轉到133主服務器,

啓動keepalived服務器,輸入指令:systemctl start keepalived

再次刷新VIP-192.168.159.199,如下圖:

在刷新頁面的時候,會發現,當主節點(128服務器)恢復正常後,VIP回快速的跳轉回主節點。

*注:在實際生產環境中,只需提供VIP地址(或者VIP對應的域名地址)給用戶訪問,以達到高可用的目的,千萬切記,不可提供實際的服務器IP地址給用戶,如果提供實際的服務器IP地址,當服務器真的宕機的時候,用戶將不能正常訪問服務器,也就達不到高可用的目的,所以,這兒需要切記!!!

 

 

 

 

參考文檔:

Keepalived 官網:【https://www.keepalived.org/


 好了,關於 Nginx+Keepalived搭建高可用Web服務器詳細教程,基於最新版Keepalived2.0.20實現的安裝與配置 就寫到這兒了,如果還有什麼疑問或遇到什麼問題歡迎掃碼提問,也可以給我留言哦,我會一一詳細的解答的。 
歇後語:“ 共同學習,共同進步 ”,也希望大家多多關注CSND的IT社區。


作       者: 華    仔
聯繫作者: [email protected]
來        源: CSDN (Chinese Software Developer Network)
原        文: https://blog.csdn.net/Hello_World_QWP/article/details/104447076
版權聲明: 本文爲博主原創文章,請在轉載時務必註明博文出處!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章