Nginx rewrite跳轉
目錄
一、Keepalived工具介紹
二、Keepalived實現原理剖析
三、Keepalived案例講解
四、LVS + Keepalived高可用群集的搭建
一、Keepalived工具介紹
支援故障自動切換(Failover)-->VIP 虛擬地址飄逸(對外暴露IP)
支援節點健康狀態檢查(Health Checking) --》LVS 健康檢查 Nginx 健康檢查 針對於服務的健康檢查
判斷LVS負載排程器、節點伺服器的可用性,當master主機出現故障及時切換到backup節點保證業務正常,當 master 故障主機恢復後將其重新加入群集並且業務重新切換回 master 節點(優先順序)。
二、Keepalived實現原理剖析
keepalived採用VRRP熱備份協議實現Linux 伺服器的多機熱備功能
####VRRP(虛擬路由冗餘協議)
是針對路由器的一種備份解決方案
由多臺路由器組成一個熱備組,通過共用的虛擬IP地址對外提供服務
每個熱備組內同時只有一臺主路由器提供服務,其他路由器處於冗餘狀態
若當前線上的路由器失效,則其他路由器會根據設定的優先順序自動接替虛擬IP地址,繼續提供服務
三、Keepalived案例講解
Keepalived可實現多機熱備,每個熱備組可有多臺伺服器
雙機熱備的故障切換是由虛擬P地址的漂移來實現,適用於各種應用伺服器
Keepalived配置目錄位於/etc/keepalived/
配置Keepalived master伺服器
##keepalived.conf是主配置檔案
##常用配置選項
##配置Keepalived slave伺服器
##Keepalived備份伺服器的配置與master的配置有三個選項不同
##其他選項與master相同
四、LVS + Keepalived高可用群集的搭建
#####環境準備
伺服器IP地址配置需要的工具
主負載排程器(Director1) ens33:192.168.147.6 ipvsadm Keepalived(主DR)
備負載排程器(Director2) ens33:192.168.147.5 ipvsadm Keepalived(備DR)
web伺服器1 ens33 192.168.147.4
lo: 0 (VIP): 192.168.147.100 httpd
web伺服器2 ens33 192.168.147.3
lo: 0 (VIP): 192.168.147.100 httpd
PS:前置環境: 四臺伺服器
#####關閉防火牆
####LVS排程伺服器配置(主-備)
yum install -y ipvsadm keepalived
modprobe ip_vs #手動載入ip_vs模組
cat /proc/net/ip_vs #檢視ip_vs版本資訊
####啟動服務前必須儲存負載分配策略,否則將會報錯
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
####配置虛擬IP地址(VIP:192.168.147.100)
cd /etc/sysconfig/network-scripts/
cp -p ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
重啟啟動網絡卡
ifup ens33:0
ifconfig
#i調整proc響應引數
#由於IVs負載均衡器和各節點需要共用vip地址,應該關閉linux核心的重定向響應引數,不充當路由器(轉發、重定向)
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
###寫一個指令碼 清空ipvsadm,並做策略
vim /opt/dr.sh
chmod +x dr.sh
###web站點伺服器配置
配置虛擬IP地址
此地址僅用做傳送web響應資料包的源地址,並不需要監聽客戶機的訪問請求(改由排程器監聽並分發)
因此使用虛介面lo:0來承載VIP地址,併為本機新增一條路由記錄,將訪問vIP的資料限制在本地,以避免通訊紊亂。
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
###添加回環網絡卡,修改迴環網絡卡名,IP地址,子網掩碼
cp -p ifcfg-ens33 ifcfg-lo:0
vim ifcfg-lo:0
ifup lo:0
ifconfig
###配置路由禁錮
route add -host 192.168.147.100 dev lo:0
####調整核心的ARP響應引數以阻止更新VIP的MAC地址,避免衝突vim /etc/sysctl.conf
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
###安裝httpd、開啟服務
yum install -y httpd
systemctl start httpd.service
###建立一個站點檔案
vim /var/www/html/index.html
###另一臺web2
上面操作相同
###建立一個站點檔案
###部署keepalived(主-備)
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
##儲存並退出
執行清空ipvsadm,並做策略的指令碼
./dr.sh
開啟keepalived systemctl start keepalived
##備keepalived
##儲存並退出
執行清空ipvsadm,並做策略的指令碼
./dr.sh
開啟keepalived systemctl start keepalived
##測試
①當前使用的為主DR伺服器
②斷開主DR伺服器的Keepalived測試
③客戶端測試訪問192.168.147.100