1. 程式人生 > 其它 >Nginx rewrite跳轉

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