目錄
Nginx+Keepalived搭建高可用Web服務器詳細教程
前言
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 |
版權聲明: | 本文爲博主原創文章,請在轉載時務必註明博文出處! |