欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

haproxy+keepalived實(shí)現(xiàn)高可用負(fù)載均衡(理論篇)

 更新時(shí)間:2013年01月29日 11:13:05   作者:  
軟件負(fù)載均衡一般通過兩種方式來實(shí)現(xiàn):基于操作系統(tǒng)的軟負(fù)載實(shí)現(xiàn)和基于第三方應(yīng)用的軟負(fù)載實(shí)現(xiàn)。LVS就是基于Linux操作系統(tǒng)實(shí)現(xiàn)的一種軟負(fù)載,HAProxy就是開源的并且基于第三應(yīng)用實(shí)現(xiàn)的軟負(fù)載

HAProxy相比LVS的使用要簡(jiǎn)單很多,功能方面也很豐富。當(dāng) 前,HAProxy支持兩種主要的代理模式:"tcp"也即4層(大多用于郵件服務(wù)器、內(nèi)部協(xié)議通信服務(wù)器等),和7層(HTTP)。在4層模式 下,HAProxy僅在客戶端和服務(wù)器之間轉(zhuǎn)發(fā)雙向流量。7層模式下,HAProxy會(huì)分析協(xié)議,并且能通過允許、拒絕、交換、增加、修改或者刪除請(qǐng)求 (request)或者回應(yīng)(response)里指定內(nèi)容來控制協(xié)議,這種操作要基于特定規(guī)則。

我現(xiàn)在用HAProxy主要在于它有以下優(yōu)點(diǎn),這里我總結(jié)下:

一、免費(fèi)開源,穩(wěn)定性也是非常好,這個(gè)可通過我做的一些小項(xiàng)目可以看出來,單Haproxy也跑得不錯(cuò),穩(wěn)定性可以與LVS相媲美;
二、根據(jù)官方文檔,HAProxy可以跑滿10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express),這個(gè)作為軟件級(jí)負(fù)載均衡,也是比較驚人的;
三、HAProxy可以作為MySQL、郵件或其它的非web的負(fù)載均衡,我們常用于它作為MySQL(讀)負(fù)載均衡;
四、自帶強(qiáng)大的監(jiān)控服務(wù)器狀態(tài)的頁面,實(shí)際環(huán)境中我們結(jié)合Nagios進(jìn)行郵件或短信報(bào)警,這個(gè)也是我非常喜歡它的原因之一;
五、HAProxy支持虛擬主機(jī)。


在做反向代理服務(wù)器的負(fù)載均衡時(shí),我們通常會(huì)使用nginx的均衡配置。其實(shí),haproxy的負(fù)載均衡也是屬于這一類的。那么關(guān)于這方面的配置過程我們現(xiàn)在來進(jìn)行一下講解。首先,對(duì)haproxy進(jìn)行一個(gè)簡(jiǎn)單的介紹,之后就是安裝和配置環(huán)節(jié)了。

HAProxy介紹

反向代理服務(wù)器,支持雙機(jī)熱備支持虛擬主機(jī),但其配置簡(jiǎn)單,擁有非常不錯(cuò)的服務(wù)器健康檢查功能,當(dāng)其代理的后端服務(wù)器出現(xiàn)故障, HAProxy會(huì)自動(dòng)將該服務(wù)器摘除,故障恢復(fù)后再自動(dòng)將該服務(wù)器加入。新的1.3引入了frontend,backend;frontend根據(jù)任意 HTTP請(qǐng)求頭內(nèi)容做規(guī)則匹配,然后把請(qǐng)求定向到相關(guān)的backend.
http://blog.liuts.com/post/223/ (搭建四層負(fù)載均衡器)
http://rfyimcool.blog.51cto.com/1030776/413187 (搭建七層負(fù)載均衡器)


keepalived簡(jiǎn)介  

http://www.keepalived.org
keepalived是一個(gè)類似于layer3, 4 & 5交換機(jī)制的軟件,也就是我們平時(shí)說的第3層、第4層和第5層交換。Keepalived的作用是檢測(cè)web服務(wù)器的狀態(tài),如果有一臺(tái)web服務(wù)器死機(jī),或工作出現(xiàn)故障,Keepalived將檢測(cè)到,并將有故障的web服務(wù)器從系統(tǒng)中剔除,當(dāng)web服務(wù)器工作正常后Keepalived自動(dòng)將web服務(wù)器加入到服務(wù)器群中,這些工作全部自動(dòng)完成,不需要人工干涉,需要人工做的只是修復(fù)故障的web服務(wù)器。

類似的HA工具還有heatbeat、drbd等,heatbeat、drbd配置都較為復(fù)雜。

keepalived理論工作原理

keepalived可提供vrrp以及health-check功能,可以只用它提供雙機(jī)浮動(dòng)的vip(vrrp虛擬路由功能),這樣可以簡(jiǎn)單實(shí)現(xiàn)一個(gè)雙機(jī)熱備高可用功能。
keepalived是一個(gè)類似于layer3, 4 & 5交換機(jī)制的軟件,也就是我們平時(shí)說的第3層、第4層和第5層交換。Keepalived的作用是檢測(cè)web 服務(wù)器的狀態(tài)。 Layer3,4&5工作在IP/TCP協(xié)議棧的IP層,TCP層,及應(yīng)用層,原理分別如下:

  Layer3:Keepalived使用Layer3的方式工作式時(shí),Keepalived會(huì)定期向服務(wù)器群中的服務(wù)器

  發(fā)送一個(gè)ICMP的數(shù)據(jù)包(既我們平時(shí)用的Ping程序),如果發(fā)現(xiàn)某臺(tái)服務(wù)的IP地址沒有激活,Keepalived便報(bào)告這臺(tái)服務(wù)器失效,并將它從服務(wù)器群中剔除,這種情況的典型例子是某臺(tái)服務(wù)器被非法關(guān)機(jī)。Layer3的方式是以服務(wù)器的IP地址是否有效作為服務(wù)器工作正常與否的標(biāo)準(zhǔn)。在本文中將采用這種方式。

  Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的狀態(tài)來決定服務(wù)器工作正常與否。如web server的服務(wù)端口一般是80,如果Keepalived檢測(cè)到80端口沒有啟動(dòng),則Keepalived將把這臺(tái)服務(wù)器從服務(wù)器群中剔除。

  Layer5:Layer5就是工作在具體的應(yīng)用層了,比Layer3,Layer4要復(fù)雜一點(diǎn),在網(wǎng)絡(luò)上占用的帶寬也要大一些。Keepalived將根據(jù)用戶的設(shè)定檢查服務(wù)器程序的運(yùn)行是否正常,如果與用戶的設(shè)定不相符,則Keepalived將把服務(wù)器從服務(wù)器群中剔除。

vip即虛擬ip,是附在主機(jī)網(wǎng)卡上的,即對(duì)主機(jī)網(wǎng)卡進(jìn)行虛擬,此IP仍然是占用了此網(wǎng)段的某個(gè)IP。

keepalived作用

  隨著你的網(wǎng)站業(yè)務(wù)量的增長(zhǎng)你網(wǎng)站的服務(wù)器壓力越來越大?需要負(fù)載均衡方案!商業(yè)的硬件如F5又太貴,你們又是創(chuàng)業(yè)型互聯(lián)公司如何有效節(jié)約成本,節(jié)省不必要的浪費(fèi)?同時(shí)實(shí)現(xiàn)商業(yè)硬件一樣的高性能高可用的功能?有什么好的負(fù)載均衡可伸張可擴(kuò)展的方案嗎?答案是肯定的!有!我們利用 LVS+Keepalived基于完整開源軟件的架構(gòu)可以為你提供一個(gè)負(fù)載均衡及高可用的服務(wù)器。

  LVS+Keepalived 介紹

  LVS

  LVS是Linux Virtual Server的簡(jiǎn)寫,意即Linux虛擬服務(wù)器,是一個(gè)虛擬的服務(wù)器集群系統(tǒng)。本項(xiàng)目在1998年5月由章文嵩博士成立,是中國(guó)國(guó)內(nèi)最早出現(xiàn)的自由軟件項(xiàng)目之一.目前有三種IP負(fù)載均衡技術(shù)(VS/NAT、VS/TUN和VS/DR)八種調(diào)度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。

  Keepalvied

  Keepalived在這里主要用作RealServer的健康狀態(tài)檢查以及LoadBalance主機(jī)和BackUP主機(jī)之間failover的實(shí)現(xiàn)。keepalived簡(jiǎn)介  keepalived是一個(gè)類似于layer3, 4 & 5交換機(jī)制的軟件,也就是我們平時(shí)說的第3層、第4層和第5層交換。Keepalived的作用是檢測(cè)web服務(wù)器的狀態(tài),如果有一臺(tái)web服務(wù)器死機(jī),或工作出現(xiàn)故障,Keepalived將檢測(cè)到,并將有故障的web服務(wù)器從系統(tǒng)中剔除,當(dāng)web服務(wù)器工作正常后Keepalived自動(dòng)將web服務(wù)器加入到服務(wù)器群中,這些工作全部自動(dòng)完成,不需要人工干涉,需要人工做的只是修復(fù)故障的web服務(wù)器。

Keepalived介紹

Keepalived是一個(gè)基于VRRP協(xié)議來實(shí)現(xiàn)的WEB 服務(wù)高可用方案,可以利用其來避免單點(diǎn)故障。一個(gè)WEB服務(wù)至少會(huì)有2臺(tái)服務(wù)器運(yùn)行Keepalived,一臺(tái)為主服務(wù)器(MASTER),一臺(tái)為備份服務(wù)器(BACKUP),但是對(duì)外表現(xiàn)為一個(gè)虛擬IP,主服務(wù)器會(huì)發(fā)送特定的消息給備份服務(wù)器,當(dāng)備份服務(wù)器收不到這個(gè)消息的時(shí)候,即主服務(wù)器宕機(jī)的時(shí)候,備份服務(wù)器就會(huì)接管虛擬IP,繼續(xù)提供服務(wù),從而保證了高可用性。

1       +-------------VIP(192.168.0.7)------------------+

2       |                                   |                           |  

3       |                                   |                           |  

4 server(MASTER) <----keepalived----> server(BACKUP)

5  (192.168.0.1)                                      (192.168.0.2)

keepalived是VRRP的完美實(shí)現(xiàn),因此在介紹keepalived之前,先介紹一下VRRP的原理。

VRRP協(xié)議簡(jiǎn)介

在現(xiàn)實(shí)的網(wǎng)絡(luò)環(huán)境中,兩臺(tái)需要通信的主機(jī)大多數(shù)情況下并沒有直接的物理連接。對(duì)于這樣的情況,它們之間路由怎樣選擇?主機(jī)如何選定到達(dá)目的主機(jī)的下一跳路由,這個(gè)問題通常的解決方法有二種:

·        在主機(jī)上使用動(dòng)態(tài)路由協(xié)議(RIP、OSPF等)

·        在主機(jī)上配置靜態(tài)路由

很明顯,在主機(jī)上配置路態(tài)路由是非常不切實(shí)際的,因?yàn)楣芾怼⒕S護(hù)成本以及是否支持等諸多問題。配置靜態(tài)路由就變得十分流行,但路由器(或者說默認(rèn)網(wǎng)關(guān)default gateway)卻經(jīng)常成為單點(diǎn)。

VRRP的目的就是為了解決靜態(tài)路由單點(diǎn)故障問題。

VRRP通過一競(jìng)選(election)協(xié)議來動(dòng)態(tài)的將路由任務(wù)交給LAN中虛擬路由器中的某臺(tái)VRRP路由器。

工作機(jī)制

在一個(gè)VRRP虛擬路由器中,有多臺(tái)物理的VRRP路由器,但是這多臺(tái)的物理的機(jī)器并不能同時(shí)工作,而是由一臺(tái)稱為MASTER的負(fù)責(zé)路由工作,其它的都是BACKUP,MASTER并非一成不變,VRRP讓每個(gè)VRRP路由器參與競(jìng)選,最終獲勝的就是MASTER。MASTER擁有一些特權(quán),比如 擁有虛擬路由器的IP地址,我們的主機(jī)就是用這個(gè)IP地址作為靜態(tài)路由的。擁有特權(quán)的MASTER要負(fù)責(zé)轉(zhuǎn)發(fā)發(fā)送給網(wǎng)關(guān)地址的包和響應(yīng)ARP請(qǐng)求。

VRRP通過競(jìng)選協(xié)議來實(shí)現(xiàn)虛擬路由器的功能,所有的協(xié)議報(bào)文都是通過IP多播(multicast)包(多播地址 224.0.0.18)形式發(fā)送的。虛擬路由器由VRID(范圍0-255)和一組IP地址組成,對(duì)外表現(xiàn)為一個(gè)周知的MAC地址。所以,在一個(gè)虛擬路由 器中,不管誰是MASTER,對(duì)外都是相同的MAC和IP(稱之為VIP)。客戶端主機(jī)并不需要因?yàn)镸ASTER的改變而修改自己的路由配置,對(duì)他們來 說,這種主從的切換是透明的。

在一個(gè)虛擬路由器中,只有作為MASTER的VRRP路由器會(huì)一直發(fā)送VRRP廣告包(VRRPAdvertisement message),BACKUP不會(huì)搶占MASTER,除非它的優(yōu)先級(jí)(priority)更高。當(dāng)MASTER不可用時(shí)(BACKUP收不到廣告包), 多臺(tái)BACKUP中優(yōu)先級(jí)最高的這臺(tái)會(huì)被搶占為MASTER。這種搶占是非??焖俚?<1s),以保證服務(wù)的連續(xù)性。

由于安全性考慮,VRRP包使用了加密協(xié)議進(jìn)行加密。

vrrp簡(jiǎn)介
隨著Internet的迅猛發(fā)展,基于網(wǎng)絡(luò)的應(yīng)用逐漸增多。這就對(duì)網(wǎng)絡(luò)的可靠性提出了越來越高的要求。斥資對(duì)所有網(wǎng)絡(luò)設(shè)備進(jìn)行更新當(dāng)然是一種很好的可靠性解決方案;但本著保護(hù)現(xiàn)有投資的角度考慮,可以采用廉價(jià)冗余的思路,在可靠性和經(jīng)濟(jì)性方面找到平衡點(diǎn)。

  虛擬路由冗余協(xié)議就是一種很好的解決方案。在該協(xié)議中,對(duì)共享多存取訪問介質(zhì)(如以太網(wǎng))上終端IP設(shè)備的默認(rèn)網(wǎng)關(guān)(Default Gateway)進(jìn)行冗余備份,從而在其中一臺(tái)路由設(shè)備宕機(jī)時(shí),備份路由設(shè)備及時(shí)接管轉(zhuǎn)發(fā)工作,向用戶提供透明的切換,提高了網(wǎng)絡(luò)服務(wù)質(zhì)量。 

一、協(xié)議概述

  在基于TCP/IP協(xié)議的網(wǎng)絡(luò)中,為了保證不直接物理連接的設(shè)備之間的通信,必須指定路由。目前常用的指定路由的方法有兩種:一種是通過路由協(xié)議(比如:內(nèi)部路由協(xié)議RIP和OSPF)動(dòng)態(tài)學(xué)習(xí);另一種是靜態(tài)配置。在每一個(gè)終端都運(yùn)行動(dòng)態(tài)路由協(xié)議是不現(xiàn)實(shí)的,大多客戶端操作系統(tǒng)平臺(tái)都不支持動(dòng)態(tài)路由協(xié)議,即使支持也受到管理開銷、收斂度、安全性等許多問題的限制。因此普遍采用對(duì)終端IP設(shè)備靜態(tài)路由配置,一般是給終端設(shè)備指定一個(gè)或者多個(gè)默認(rèn)網(wǎng)關(guān)(Default Gateway)。靜態(tài)路由的方法簡(jiǎn)化了網(wǎng)絡(luò)管理的復(fù)雜度和減輕了終端設(shè)備的通信開銷,但是它仍然有一個(gè)缺點(diǎn):如果作為默認(rèn)網(wǎng)關(guān)的路由器損壞,所有使用該網(wǎng)關(guān)為下一跳主機(jī)的通信必然要中斷。即便配置了多個(gè)默認(rèn)網(wǎng)關(guān),如不重新啟動(dòng)終端設(shè)備,也不能切換到新的網(wǎng)關(guān)。采用虛擬路由冗余協(xié)議 (Virtual Router Redundancy Protocol,簡(jiǎn)稱VRRP)可以很好的避免靜態(tài)指定網(wǎng)關(guān)的缺陷。

  在VRRP協(xié)議中,有兩組重要的概念:VRRP路由器和虛擬路由器,主控路由器和備份路由器。VRRP路由器是指運(yùn)行VRRP的路由器,是物理實(shí)體,虛擬路由器是指VRRP協(xié)議創(chuàng)建的,是邏輯概念。一組VRRP路由器協(xié)同工作,共同構(gòu)成一臺(tái)虛擬路由器。該虛擬路由器對(duì)外表現(xiàn)為一個(gè)具有唯一固定IP地址和MAC地址的邏輯路由器。處于同一個(gè)VRRP組中的路由器具有兩種互斥的角色:主控路由器和備份路由器,一個(gè)VRRP組中有且只有一臺(tái)處于主控角色的路由器,可以有一個(gè)或者多個(gè)處于備份角色的路由器。VRRP協(xié)議使用選擇策略從路由器組中選出一臺(tái)作為主控,負(fù)責(zé)ARP相應(yīng)和轉(zhuǎn)發(fā)IP數(shù)據(jù)包,組中的其它路由器作為備份的角色處于待命狀態(tài)。當(dāng)由于某種原因主控路由器發(fā)生故障時(shí),備份路由器能在幾秒鐘的時(shí)延后升級(jí)為主路由器。由于此切換非常迅速而且不用改變IP地址和MAC地址,故對(duì)終端使用者系統(tǒng)是透明的。 

二、工作原理

  一個(gè)VRRP路由器有唯一的標(biāo)識(shí):VRID,范圍為0—255。該路由器對(duì)外表現(xiàn)為唯一的虛擬MAC地址,地址的格式為00-00-5E-00-01-[VRID]。主控路由器負(fù)責(zé)對(duì)ARP請(qǐng)求用該MAC地址做應(yīng)答。這樣,無論如何切換,保證給終端設(shè)備的是唯一一致的IP和MAC地址,減少了切換對(duì)終端設(shè)備的影響。

  VRRP控制報(bào)文只有一種:VRRP通告(advertisement)。它使用IP多播數(shù)據(jù)包進(jìn)行封裝,組地址為224.0.0.18,發(fā)布范圍只限于同一局域網(wǎng)內(nèi)。這保證了VRID在不同網(wǎng)絡(luò)中可以重復(fù)使用。為了減少網(wǎng)絡(luò)帶寬消耗只有主控路由器才可以周期性的發(fā)送VRRP通告報(bào)文。備份路由器在連續(xù)三個(gè)通告間隔內(nèi)收不到VRRP或收到優(yōu)先級(jí)為0的通告后啟動(dòng)新的一輪VRRP選舉。

  在VRRP路由器組中,按優(yōu)先級(jí)選舉主控路由器,VRRP協(xié)議中優(yōu)先級(jí)范圍是0—255。若VRRP路由器的IP地址和虛擬路由器的接口IP地址相同,則稱該虛擬路由器作VRRP組中的IP地址所有者;IP地址所有者自動(dòng)具有最高優(yōu)先級(jí):255。優(yōu)先級(jí)0一般用在IP地址所有者主動(dòng)放棄主控者角色時(shí)使用??膳渲玫膬?yōu)先級(jí)范圍為1—254。優(yōu)先級(jí)的配置原則可以依據(jù)鏈路的速度和成本、路由器性能和可靠性以及其它管理策略設(shè)定。主控路由器的選舉中,高優(yōu)先級(jí)的虛擬路由器獲勝,因此,如果在VRRP組中有IP地址所有者,則它總是作為主控路由的角色出現(xiàn)。對(duì)于相同優(yōu)先級(jí)的候選路由器,按照IP地址大小順序選舉。VRRP還提供了優(yōu)先級(jí)搶占策略,如果配置了該策略,高優(yōu)先級(jí)的備份路由器便會(huì)剝奪當(dāng)前低優(yōu)先級(jí)的主控路由器而成為新的主控路由器。

  為了保證VRRP協(xié)議的安全性,提供了兩種安全認(rèn)證措施:明文認(rèn)證和IP頭認(rèn)證。明文認(rèn)證方式要求:在加入一個(gè)VRRP路由器組時(shí),必須同時(shí)提供相同的VRID和明文密碼。適合于避免在局域網(wǎng)內(nèi)的配置錯(cuò)誤,但不能防止通過網(wǎng)絡(luò)監(jiān)聽方式獲得密碼。IP頭認(rèn)證的方式提供了更高的安全性,能夠防止報(bào)文重放和修改等攻擊。

三、 應(yīng)用實(shí)例

  最典型的VRRP應(yīng)用:RTA、RTB組成一個(gè)VRRP路由器組,假設(shè)RTB的處理能力高于RTA,則將RTB配置成IP地址所有者,H1、H2、H3的默認(rèn)網(wǎng)關(guān)設(shè)定為RTB。則RTB成為主控路由器,負(fù)責(zé)ICMP重定向、ARP應(yīng)答和IP報(bào)文的轉(zhuǎn)發(fā);一旦RTB失敗,RTA立即啟動(dòng)切換,成為主控,從而保證了對(duì)客戶透明的安全切換。

  在VRRP應(yīng)用中,RTA在線時(shí)RTB只是作為后備,不參與轉(zhuǎn)發(fā)工作,閑置了路由器RTA和鏈路L1。通過合理的網(wǎng)絡(luò)設(shè)計(jì),可以到達(dá)備份和負(fù)載分擔(dān)雙重效果。讓RTA、RTB同時(shí)屬于互為備份的兩個(gè)VRRP組:在組1中RTA為IP地址所有者;組2中RTB為IP地址所有者。將H1的默認(rèn)網(wǎng)關(guān)設(shè)定為RTA;H2、H3的默認(rèn)網(wǎng)關(guān)設(shè)定為RTB。這樣,既分擔(dān)了設(shè)備負(fù)載和網(wǎng)絡(luò)流量,又提高了網(wǎng)絡(luò)可靠性。

  VRRP協(xié)議的工作機(jī)理與CISCO公司的HSRP(Hot Standby Routing Protocol)有許多相似之處。但二者主要的區(qū)別是在CISCO的HSRP中,需要單獨(dú)配置一個(gè)IP地址作為虛擬路由器對(duì)外體現(xiàn)的地址,這個(gè)地址不能是組中任何一個(gè)成員的接口地址。

  使用VRRP協(xié)議,不用改造目前的網(wǎng)絡(luò)結(jié)構(gòu),最大限度保護(hù)了當(dāng)前投資,只需最少的管理費(fèi)用,卻大大提升了網(wǎng)絡(luò)性能,具有重大的應(yīng)用價(jià)值。

===================================================================================
keepalive的簡(jiǎn)單應(yīng)用——管理VIP的飄動(dòng)
from:http://www.cnblogs.com/killkill/archive/2010/12/31/1922360.html

VIP的飄動(dòng)可以為我們解決很多問題,以前我試過使用ifup/ifdown的方式控制網(wǎng)卡的up/down來實(shí)現(xiàn),這種方式有個(gè)小問題,就是每次VIP 飄動(dòng)之后都要等上幾十秒才能生效,感覺時(shí)間比較長(zhǎng),而且還要配合一些邏輯腳本才能很好地工作,有沒有更好的方法呢?當(dāng)然有,這就是本文的主角—— keepalived。

安裝很簡(jiǎn)單:

復(fù)制代碼 代碼如下:

 tar zxvf keepalived-1.1.20.tar.gz  
 cd keepalived-1.1.20
 ./configure --prefix=/
make
make install

修改一下 /etc/keepalived/keepalived.conf 這個(gè)配置文件就可以用了,以下是我的環(huán)境,192.168.10.141和192.168.10.142是兩個(gè)VIP,可以在兩臺(tái)服務(wù)器之間飄動(dòng):

 

主機(jī)的配置:

復(fù)制代碼 代碼如下:

 global_defs {
    notification_email {
      failover@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc
    smtp_server 192.168.0.48
    smtp_connect_timeout 10
    router_id nginx
 }

 vrrp_instance VI_141 {
     state BACKUP
     interface eth0
     virtual_router_id 141
     priority 50
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 141
     }
     virtual_ipaddress {
         192.168.10.141/26 dev eth0
     }
 }

 vrrp_instance VI_142 {
     state BACKUP
     interface eth0
     virtual_router_id 142
     priority 100
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 142
     }
     virtual_ipaddress {
         192.168.10.142/26 dev eth0
     }
 }

備機(jī)的配置:
復(fù)制代碼 代碼如下:

 global_defs {
    notification_email {
      failover@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc
    smtp_server 10.168.0.48
    smtp_connect_timeout 10
    router_id nginx
 }

 vrrp_instance VI_141 {
     state BACKUP
     interface eth0
     virtual_router_id 141
     priority 100
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 141
     }
     virtual_ipaddress {
         192.168.10.141/26 dev eth0
     }
 }

 vrrp_instance VI_142 {
     state BACKUP
     interface eth0
     virtual_router_id 142
     priority 50
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 142
     }
     virtual_ipaddress {
         192.168.10.142/26 dev eth0
     }
 }

乍一看,主機(jī)和備機(jī)的配置文件是一樣的,仔細(xì)看一下priority的值,使用以下命令即可將keepalived加入linux的服務(wù)中:

復(fù)制代碼 代碼如下:
chkconfig --add keepalived ;

通過啟、停keepalived這個(gè)服務(wù)即可觀察到VIP的飄動(dòng),至于為什么VIP飄動(dòng)后可以很快地生效,還有待研究。

haproxy+keepalived實(shí)現(xiàn)高可用負(fù)載均衡
我的環(huán)境:
haproxy keepalived 主:192.168.1.192
haproxy keepalived 備:192.168.1.193
vip:192.168.1.200
web:192.168.1.187:80 192.168.1.187:8000

一:安裝過程,在192.168.1.192上:

keepalived的安裝:

復(fù)制代碼 代碼如下:

#tar -zxvf keepalived-1.1.17.tar.gz
#ln -s /usr/src/kernels/2.6.18-128.el5-i686/ /usr/src/linux
#cd keepalived-1.1.17
#./configure --prefix=/ --mandir=/usr/local/share/man/ --with-kernel-dir=/usr/src/kernels/2.6.18-128.el5-i686/
#make && make install
#cd /etc/keepalived/
#mv keepalived.conf keepalived.conf.default
#vi keepalived.conf
! Configuration File for keepalived

vrrp_script chk_http_port {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 2

global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #192.168.1.193上改為BACKUP
interface eth0
virtual_router_id 51
priority 150 #192.168.1.193上改為120
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
chk_http_port
}

virtual_ipaddress {
192.168.1.200
}
}
}

#vi /etc/keepalived/check_haproxy.sh
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
sleep 3
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
#chmod 755 /etc/keepalived/check_haproxy.sh


haproxy的安裝(主備都一樣):
復(fù)制代碼 代碼如下:

#tar -zxvf haproxy-1.4.9.tar.gz
#cd haproxy-1.4.9
#make TARGET=linux26 PREFIX=/usr/local/haproxy install
#cd /usr/local/haproxy/
#mkdir conf logs
#cd conf
#vi haproxy.cfg
global
log 127.0.0.1 local3 info
maxconn 4096
user nobody
group nobody
daemon
nbproc 1
pidfile /usr/local/haproxy/logs/haproxy.pid

defaults
maxconn 2000
contimeout 5000
clitimeout 30000
srvtimeout 30000
mode http
log global
log 127.0.0.1 local3 info
stats uri /admin?stats
option forwardfor

frontend http_server
bind :80
log global
default_backend info_cache
acl test hdr_dom(host) -i test.domain.com
use_backend cache_test if test

backend info_cache
#balance roundrobin
balance source
option httpchk HEAD /haproxy.txt HTTP/1.1\r\nHost:192.168.1.187
server inst2 192.168.1.187:80 check inter 5000 fall 3


backend cache_test
balance roundrobin
#balance source
option httpchk HEAD /haproxy.txt HTTP/1.1\r\nHost:test.domain.com
server inst1 192.168.1.187:8000 check inter 5000 fall 3

二:再兩臺(tái)機(jī)器上都分別啟動(dòng):

/etc/init.d/keepalived start (這條命令會(huì)自動(dòng)把haproxy啟動(dòng))

三:測(cè)試:

1.再兩臺(tái)機(jī)器上分別執(zhí)行ip add
主: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:98:cd:c0 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.192/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.200/32 scope global eth0
inet6 fe80::20c:29ff:fe98:cdc0/64 scope link
valid_lft forever preferred_lft forever

備: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:a6:0c:7e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.193/24 brd 255.255.255.254 scope global eth0
inet6 fe80::20c:29ff:fea6:c7e/64 scope link
valid_lft forever preferred_lft forever

2.停掉主上的haproxy,3秒后keepalived會(huì)自動(dòng)將其再次啟動(dòng)
3.停掉主的keepalived,備機(jī)馬上接管服務(wù)
備: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:a6:0c:7e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.193/24 brd 255.255.255.254 scope global eth0
inet 192.168.1.200/32 scope global eth0
inet6 fe80::20c:29ff:fea6:c7e/64 scope link
valid_lft forever preferred_lft forever

4.更改hosts
192.168.1.200 test.com
192.168.1.200 test.domain.com
通過IE測(cè)試,可以發(fā)現(xiàn)
test.com的請(qǐng)求發(fā)向了192.168.1.187:80
test.domain.com的請(qǐng)求發(fā)向了192.168.1.187:8000


相關(guān)文章

  • Linux下Kafka分布式集群安裝教程

    Linux下Kafka分布式集群安裝教程

    這篇文章主要為大家詳細(xì)介紹了Linux下Kafka分布式集群安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 淺析在 RHEL8 配置靜態(tài) IP 地址的不同方法

    淺析在 RHEL8 配置靜態(tài) IP 地址的不同方法

    如果一個(gè)人在 Linux 服務(wù)器上正確配置了靜態(tài)地址,那么他/她就可以通過網(wǎng)絡(luò)遠(yuǎn)程訪問它。在本文中,我們將演示在 RHEL 8 服務(wù)器網(wǎng)卡上配置靜態(tài) IP 地址的不同方法,需要的朋友可以參考下
    2019-09-09
  • Linux系統(tǒng)下如何掛載FAT32的U盤

    Linux系統(tǒng)下如何掛載FAT32的U盤

    Linux掛載U盤步驟如下: 1:將U盤插入U(xiǎn)SB接口,檢查是否插好 2:用fdisk命令檢查分區(qū)和USB設(shè)備信息
    2013-04-04
  • linux下ceph分布式安裝使用教程

    linux下ceph分布式安裝使用教程

    大家好,本篇文章主要講的是linux下ceph分布式安裝使用教程,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2021-11-11
  • 淺析Docker私有鏡像庫與阿里云對(duì)象存儲(chǔ) OSS

    淺析Docker私有鏡像庫與阿里云對(duì)象存儲(chǔ) OSS

    在本篇文章中我們給大家分享了關(guān)于Docker私有鏡像庫與阿里云對(duì)象存儲(chǔ) OSS的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考下。
    2018-09-09
  • Git pull命令與fetch命令的區(qū)別

    Git pull命令與fetch命令的區(qū)別

    這篇文章主要介紹了Git pull命令與fetch命令的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 解決linux下vim中文亂碼的方法

    解決linux下vim中文亂碼的方法

    在vim中編輯一個(gè)中文文本時(shí),有時(shí)候看起來有亂碼,以前都是修修補(bǔ)補(bǔ)的弄沒有亂碼了就不管了,這個(gè)問題一直都很困擾我。突然想到這個(gè)問題想把它給解決掉,在網(wǎng)上有很多這方面的資料,但是說得不是很到位,經(jīng)過了一天的折騰并做了一些小測(cè)試終于搞定了。下面來一起看看吧。
    2016-12-12
  • 配置Linux使用LDAP用戶認(rèn)證的方法

    配置Linux使用LDAP用戶認(rèn)證的方法

    這篇文章主要介紹了配置Linux使用LDAP用戶認(rèn)證的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 在Centos7中配置NIS的詳細(xì)過程

    在Centos7中配置NIS的詳細(xì)過程

    大家好,本篇文章主要講的是在Centos7中配置NIS的詳細(xì)過程,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Linux下對(duì)各種壓縮文件的處理方法

    Linux下對(duì)各種壓縮文件的處理方法

    下面小編就為大家?guī)硪黄狶inux下對(duì)各種壓縮文件的處理方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-12-12

最新評(píng)論