Nginx+keepalived主從雙機熱備自動切換架構
1:安裝 keepalived
安裝 keepalived 非常的簡單和容易,這跟安裝其他 GNU 原始碼軟體步驟是以模一樣的。下面 給出其安裝過程
下載最新穩定版 wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz
解包 tar zxvf keepalived-1.1.17.tar.gz
切換目錄 cd keepalived-1.1.17
配置 ./configure –prefix=/usr/local/keepalive
編譯和安裝 make ; make install
Keepalived 安裝完成後,會在安裝目錄/usr/local/keepalived 生成 bin,etc,man,sbin 這 4 個目錄。 其中 etc 為配置檔案所在的目錄.
值得注意的是,keepalived 的啟動過程並不會對配置檔案進行語法檢查,就算沒有配置檔案,
keepalived的守護程序照樣能夠被執行起來.在預設狀態下– 即不指定配置檔案的位置,
keepalived先查詢檔案 /etc/keepalived/keepalived.conf,如果為了省事,
可以手動建立這個檔案,然後在這個檔案裡書寫規則,來達到控制keepalived 執行的目的。
2:配置 keepalived.conf
一個功能比較完整的keepalived 的配置檔案,其配置檔案keepalived.conf可以包含三個文字
塊:全域性定義塊、VRRP 例項定義塊及虛擬伺服器定義塊.全域性定義塊和虛擬伺服器定義塊
是必須的,如果在只有一個負載均衡器的場合,就不須VRRP例項定義塊.
接下來,我們以一個配置檔案模版為例,有選擇的說明其中一些重要項的功能或作用.
#全域性定義塊
global_defs {
notification_email {
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
#以上是email通知,作用:有故障,發郵件報警。這是可選專案,建議不用
router_id LVS_DEVEL
#Lvs負載均衡器標識(lvs_id),在一個網路內,它應該是唯一的
}
#VRRP定義塊
vrrp_sync_group VG_1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state MASTER #例項狀態state.只有 MASTER 和 BACKUP 兩種狀態,並且需要大寫這些單詞
interface eth0 #通訊介面 interface 。對外提供服務的網路介面,如 eth0,eth1
virtual_router_id 86 #虛擬路由標識,這個標識是一個數字,並且同一個vrrp例項使用唯一的標識
priority 188 #優先順序priority.這是一個數字,數值愈大,優先順序越高
advert_int 1 #同步通知間隔,單位為秒
authentication {
auth_type PASS #驗證型別
auth_pass 1234 #驗證密碼
}
virtual_ipaddress {
192.168.1.123 dev eth0 #虛擬ip地址
}
}
#虛擬伺服器定義塊,是keepalived最重要的專案了,是keepalived.conf必不可少的部分
virtual_server 192.168.1.123 80 {
delay_loop 6 #健康檢查時間間隔,單位是秒
lb_kind DR #負載均衡轉發規則,一般包括 DR,NAT,TUN3種,在我的方案中,都使用DR的方式
persistence_timeout 50 #會話保持時間,單位是秒
protocol TCP #轉發協議,一般有tcp和udp兩種
#真實伺服器
real_server 192.168.1.100 80 {
weight 1 #權重weight.權重值是一個數字,數值越大,權重越高
notify_down “/root/service_down.sh” #檢測到真實服務down後執行的指令碼
#下面檢查任意一種檢查方式
#http或ssl檢查
HTTP_GET|SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
connect_port 444
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
#Tcp檢查
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
#指令碼檢查
MISC_CHECK {
misc_path /usr/local/bin/script.sh! #外部程式檢查
misc_timeout 10 #指令碼執行超時時間
}
}
}
3:nginx+keepalived主從自動切換示例
有兩臺機器:
192.168.1.6 主
192.168.1.7 從
虛ip 192.168.1.8 最好保區域網內無此IP
前提是兩臺主機已經安裝好了nginx和keepalived.假設nginx的虛擬主機是test.xtgxiso.cn
主(192.168.1.6)keepalived配置檔案
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 86
priority 188
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
192.168.1.8 dev eth0
}
}
virtual_server 192.168.1.8 80 {
delay_loop 6
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.1.6 80 {
weight 1
notify_down “/sbin/service keepalived stop”
HTTP_GET{
url {
path “/index.php”
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
為了檢查的正確性,最好在hosts將域名指向本機(192.168.1.6)
從(192.168.1.7)keepalived配置檔案
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 86
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
192.168.1.8 dev eth0
}
}
virtual_server 192.168.1.8 80 {
delay_loop 6
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.1.7 80 {
weight 1
notify_down “/sbin/service keepalived stop”
HTTP_GET{
url {
path “/index.php”
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
同樣為了檢查的正確性,最好在hosts將域名指向本機(192.168.1.7)
4:測試
分別在2臺nginx上啟動nginx和keepalived服務,然後分別用ip a 檢視ip
也可以通過tail -f /var/log/message 檢視日誌資訊.
通過殺掉主從的nginx看到切換情況
總結:
有的時候會出現主從不正常或其他異常情況,一般是keepalived不能正常通訊造成的 keepalived不能正常通訊,除了配置錯誤之外,通常是由於防火牆的原因,很多資料都沒有提及這點
請檢查防火牆規則符合下面的條件:
1:keepalived 預設需要使用D類多播地址224.0.0.18進行心跳通訊
2:keepalived 使用vrp協議進行通訊(埠號為112)
檢測兩個keepalived主機之間是否能通訊的辦法有 停掉一個keepalived,看另外一個keepalived的日誌/var/log/messages 裡是否有新的日誌
相關推薦
Nginx+keepalived主從雙機熱備自動切換架構
1:安裝 keepalived 安裝 keepalived 非常的簡單和容易,這跟安裝其他 GNU 原始碼軟體步驟是以模一樣的。下面 給出其安裝過程 下載最新穩定版 wget http://www.keepalived.org/software/keepaliv
解決Nginx + Keepalived主從雙機熱備+自動切換,實現負載均衡及高可用
解決Nginx + Keepalived主從雙機熱備+自動切換,實現負載均衡及高可用 IP 伺服器 服務 192.168.1.10 lb-node1 Nginx、kee
keepalived安裝與nginx的主從雙機熱備配置
nginx檢測指令碼 #!/bin/bash run=`ps -C nginx --no-header | wc -l` if [ $run -eq 0 ] then /usr/local/nginx/sbin/nginx -s stop /usr/local/nginx/sbin
Nginx+keepalived做雙機熱備,實現負載均衡(主主模式)
nginx keepalive Keepalived: 簡介:Keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常後Keepali
Linux學習總結(五十四)keepalived+lvs 雙機熱備負載均衡架構
DR LVS keepalived+lvs 一 LVS IP tunnel 模式介紹 IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的數據報文能被封裝和轉發到另一個IP地址。IP隧道技術亦稱為IP封裝技術(IP encapsulatio
keepalived實現雙機熱備
lin fire per 安裝 arp index 正常 綁定 type keepalived的作用是檢測後端TCP服務的狀態,如果有一臺提供TCP服務的後端節點死機,或者工作出現故障,keepalived會及時檢測到,並將有故障的節點從系統中剔除,當提供TCP服務的節
使用keepalived實現雙機熱備
figure 設置 dha boa message mtu hat 並不是 pid 通常說的雙機熱備是指兩臺機器都在運行,但並不是兩臺機器都同時在提供服務。當提供服務的一臺出現故障的時候,另外一臺會馬上自動接管並且提供服務,而且切換的時間非常短。下面來以keepalived
Haproxy+Keepalived(雙機熱備)搭建高可用web架構
ise mark 高可用web keepalive email protocol rip 火墻 詳情 1、目的搭建web高可用架構,用haproxy作為前段負載均衡分攤後端web服務器壓力,Keepalived保證haproxy的存活(雙機熱備:一臺haproxy掛了,自動
keepalived(雙機熱備)深度解析
以下內容為親自研究得出的結果: 雙機熱備切換時間: 主機interval*主機fail+檢測時間(檢測指令碼執行時間)與備機interval*備機rise+檢測時間(檢測指令碼執行時間)中較大的那個
LVS+KeepAlived搭建雙機熱備負載均衡
從下載內容包中找到ipvsadm-1.24.tar.gz,執行如下命令(執行命令出錯的說明編譯環境存在問題,請更新下載GCC) #tar -zxvf keepalived-1.1.15.tar.gz #cd keepalived-1.1.15 #./configure --prefix=/usr/local
Oracle之雙機熱備部署+切換故障問題解決
str 但是 雙機切換 流程 star 運行 需要 har 問題處理 最近實施的一個項目中使用了某國產雙機熱備產品,但是在數據庫做雙機熱備時出現了一些問題,沒辦法。不得不研究一番了!經過兩天的研究終於問題得以解決。將問題處理步驟記錄下來以備後用,也希望能幫助到需要的人。
Nginx + keepalived 雙機熱備(主從模式)
綁定 html 負載均衡 基於 模式 主備 class 接管 主主 雙機高可用一般是通過虛擬IP(飄移IP)方法來實現的,基於Linux/Unix的IP別名技術。 雙機高可用方法目前分為兩種: 1)雙機主從模式:即前端使用兩臺服務器,一臺主服務器和一臺熱備服務器,正常情況
Nginx+keepalived雙機熱備(主從模式)
負載均衡技術對於一個網站尤其是大型網站的web伺服器叢集來說是至關重要的!做好負載均衡架構,可以實現故障轉移和高可用環境,避免單點故障,保證網站健康持續執行。 關於負載均衡介紹,可以參考:linux負載均衡總結性說明(四層負載/七層負載) 由於業務擴充套件,網站的訪
Nginx+keepalived雙機熱備(主從模式)
簡單介紹: Keepalived是Linux下面實現VRRP備份路由的高可靠性執行軟體,能夠真正做到 主伺服器和備份伺服器故障時IP瞬間無縫交接; Keepalived的目的是模擬路由器的高可用; Heartbeat或Corosync的目的是實現Service的高可用. 那heartbaet與cor
Nginx+keepalived 高可用雙機熱備(主從模式/雙主模式)
基礎介紹 負載均衡技術對於一個網站尤其是大型網站的web伺服器叢集來說是至關重要的!做好負載均衡架構,可以實現故障轉移和高可用環境,避免單點故障,保證網站健康持續執行。 由於業務擴充套件,網站的訪問量不斷加大,負載越來越高。現需要在web前端放置ngin
keepalived+nginx雙機熱備+負載均衡
ethernet auth 超時任務 collision boot .rpm ocl bnl host keepalived+nginx雙機熱備+負載均衡最近因業務擴展,需要將當前的apache 轉為nginx(web), 再在web前端放置nginx(負載均衡)。同時結合
Nginx+keepalived雙機熱備(主主模式)
實現 nginx keepalived Nginx+keepalived實現高可用負載均衡的主主模式由於網站的訪問需求不斷加大,負載越來越高。現需要在web前端放置nginx負載均衡,同時結合keepalived對前端nginx實現HA高可用。1、nginx進程基於Master+Slave(wor
Nginx+keepalived雙機熱備
nginx ha keepalive 一、nginx簡介Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。其特點是占有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁服務器中表現較好,中國大陸使用
群集架構篇——nginx反向代理+keepalived雙機熱備+tomcat伺服器池+後端資料庫
群集架構篇——nginx反向代理+keepalived雙機熱備+tomcat伺服器池+後端資料庫 實驗所需 兩臺nginx都佈置了keepalived 漂移地址 192.168.30.100 Nginx
群集架構篇 ——nginx反向代理+keepalived雙機熱備+tomcat伺服器池+後端資料庫
首先準備好兩臺nginx,兩臺tomcat,一臺mysql資料庫,如下NginxIP地址:192.168.20.39(lvs01)192.168.20.40(lvs02)漂移地址:192.168.20.66TomcatIP地址:192.168.20.41(TM01)192.168.20.42(TM02)Mys