




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
延時文字第九章常用集群配置Linux基礎(chǔ)與服務(wù)管理主要內(nèi)容
目錄9.19.29.3LVS高性能負(fù)載均衡器HAProxy高可用軟件Keepalived9.2高性能負(fù)載均衡器HAProxy9.19.29.39.4HAProxy簡介HAProxy安裝及配置HAProxy訪問控制列表HAProxy配置實例9.5使用web監(jiān)控平臺HAProxy簡介HAProxy是一個可靠的、高性能的負(fù)載均衡軟件,也是一種免費(fèi)、快速且可靠的解決方案,可為基于TCP(第四層)和HTTP(第七層)的應(yīng)用程序提供高可用、負(fù)載均衡的代理,特別適合用于流量非常高的網(wǎng)站。HAProxy的操作模式使得其在與現(xiàn)有的體系結(jié)構(gòu)集成時非常容易且無風(fēng)險,同時也提供了不暴露web服務(wù)器的可用性。HAProxy工作于OSI七層參考模型的第四層和第七層。9.2HAProxy簡介
HAPoXxy是一個單線程、事件驅(qū)動的非阻塞引擎,同時結(jié)合了一個快速的vo層與基于優(yōu)先級的調(diào)度程序。HAProxy支持單進(jìn)程與多進(jìn)程,但在運(yùn)行多進(jìn)程時,會有一些限制。同時單個進(jìn)程可以運(yùn)行多個實例,而且在單個進(jìn)程中,可以配置300000個不同的代理并保持良好的運(yùn)行。因此,通常不需要為所有實例啟動多個進(jìn)程。HAProxy以盡可能快、盡可能少的移動數(shù)據(jù)操作為設(shè)計原則。因此,它實現(xiàn)了一個分層模型并為每個級別提供bypass機(jī)制,確保在非必要的情況下,數(shù)據(jù)不會傳到更高的級別。大多數(shù)處并為每個級別提供bypass機(jī)制,確保在非必要的情況下,數(shù)據(jù)不會傳到更高的級別。大多數(shù)處理都是在內(nèi)核中執(zhí)行的,HAProxy盡最大努力通過提供一些提示或者猜測,可以通過在以后分組時避免某些操作來盡可能快地幫助內(nèi)核完成工作。當(dāng)HAProxy工作在TCP或HTTP的close模式下時,其消耗的處理時間占15%,內(nèi)存占85%;當(dāng)HAProxy工作在TCP或HTTP的keep--alive模式下時,其消耗的處理時間占30%,內(nèi)存占70%。HAProxy只需要haproxy可執(zhí)行程序和配置文件即可運(yùn)行。對于日志記錄,建議使用正確配置的syslog守護(hù)程序并記錄日志輪換。配置文件會在啟動之前被解析,然后HAProxy會嘗試它停止工作,這意味著HAProxy沒有運(yùn)行時故障。它停止工作,這意味著HAProxy沒有運(yùn)行時故障。9.2HAProxy的工作層及其區(qū)別四層負(fù)載均衡器是通過分析IP層及TCP/IP層的流量實現(xiàn)基于“IP+端口”的負(fù)載均衡,主要通過報文的目的地址和端口配合負(fù)載均衡算法選擇后端真實服務(wù)器,確定是否需要對報文進(jìn)行修改并將數(shù)據(jù)轉(zhuǎn)發(fā)至選出的后端真實服務(wù)器。第四層第七層七層負(fù)載均衡器是基于應(yīng)用層信息(如URL、Cookies等)的負(fù)載均衡。主要依據(jù)報文的內(nèi)容配合負(fù)載均衡算法選擇后端真實服務(wù)器,然后再分發(fā)請求到真實服務(wù)器進(jìn)行處理,也稱“內(nèi)容交換器”。客戶端與負(fù)載均衡器、負(fù)載均衡器與后端真實服務(wù)器之間會分別建立TCP連接。9.2Nginx、LVS、Haproxy對比Nginx優(yōu)點(diǎn):1、Nginx的高并發(fā),同時能承載上萬個并發(fā)連接;2、nginx有充足的第三方功能模塊的支持,主要通過upstream模塊進(jìn)行負(fù)載均衡;3、nginx對網(wǎng)絡(luò)的依賴較小,理論上只要Ping得通,網(wǎng)頁訪問正常,nginx就能連得通;4、工作在網(wǎng)絡(luò)的7層之上,可以針對http應(yīng)用做一些分流的策略,它的正則規(guī)則比haproxy更為強(qiáng)大和靈活,這也是它目前廣泛流行的主要原因之一,nginx單憑這點(diǎn)可利用的場合就遠(yuǎn)多于lvs了。缺點(diǎn):1、將Nginx當(dāng)做反向代理時,負(fù)載均衡功能不是很好,對后端服務(wù)器的健康檢查功能較弱;2、nginx僅能支持http、https和email協(xié)議,這樣就在適用范圍上面小些,這個是它的缺點(diǎn);3、nginx只支持通過端口來檢測,不支持通過url來檢測。LVSHaproxy優(yōu)點(diǎn):1、抗負(fù)載能力強(qiáng)、工作在第4層僅作分發(fā)之用,沒有流量的產(chǎn)生,這個特點(diǎn)也決定了它在負(fù)載均衡軟件里的性能最強(qiáng)的;無流量,同時保證了均衡器IO的性能不會受到大流量的影響;2、工作穩(wěn)定,自身有完整的雙機(jī)熱備方案,如LVS+Keepalived和LVS+Heartbeat;3、應(yīng)用范圍比較廣,可以對所有應(yīng)用做負(fù)載均衡;4、配置性比較低,這是一個缺點(diǎn)也是一個優(yōu)點(diǎn),因為沒有可太多配置的東西,所以并不需要太多接觸,大大減少了人為出錯的幾率;缺點(diǎn):1、軟件本身不支持正則處理,不能做動靜分離,這就凸顯了Nginx/HAProxy+Keepalived的優(yōu)勢。
2、如果網(wǎng)站應(yīng)用比較龐大,LVS/DR+Keepalived就比較復(fù)雜了,特別是后面有WindowsServer應(yīng)用的機(jī)器,實施及配置還有維護(hù)過程就比較麻煩。優(yōu)點(diǎn):1、HAProxy是支持虛擬主機(jī)的,可以工作在4、7層。
2、能夠補(bǔ)充Nginx的一些缺點(diǎn)比如Session的保持,Cookie的引導(dǎo)等工作;3、支持url檢測后端的服務(wù)器;4、它跟LVS一樣,本身僅僅就只是一款負(fù)載均衡軟件;單純從效率上來講HAProxy更會比Nginx有更出色的負(fù)載均衡速度,在并發(fā)處理上也是優(yōu)于Nginx的;5、HAProxy可以對Mysql讀進(jìn)行負(fù)載均衡,對后端的MySQL節(jié)點(diǎn)進(jìn)行檢測和負(fù)載均衡,不過在后端的MySQLslaves數(shù)量超過10臺時性能不如LVS;6、HAProxy的算法較多缺點(diǎn):1.擴(kuò)展性差:添加新功能很費(fèi)勁,對不斷擴(kuò)展的新業(yè)務(wù),haproxy很難應(yīng)對;2.在四層代理時,僅支持tcp協(xié)議的代理;HAProxy安裝及其配置文件HAProxy的安裝比較簡單,可以直接使用yum源直接進(jìn)行安裝,要是需要使用最新版本則可以在官網(wǎng)上面下載最新的版本編譯安裝。9.2HAProxy安裝過程123安裝過程使用yum安裝HAProxy了解HAProxy的配置文件的相關(guān)參數(shù)對HAProxy的配置文件進(jìn)行修改配置HAProxy可以直接使用yum安裝。安裝完成后可以對其相關(guān)的配置文件進(jìn)行修改。9.2HAProxy安裝使用yum安裝如下:安裝完成后可以看到haproxy的主配置文件在etc下的haproxy里??梢圆榭蠢锩娴膮?shù)。9.2HAProxy配置文件1.Global部分2.Defaults部分3.Frontend部分4.Backend部分5.Listen部分Global部分參數(shù)是進(jìn)程級的,通常是和操作系統(tǒng)相關(guān)。這些參數(shù)一般只設(shè)置一次,如果配置無誤,就不需要再次進(jìn)行修改Defaults部分配置的參數(shù)屬于公共配置,會被frontend、backend、listen部分自動引用。若在frontend、backend、listen部分存在相同的參數(shù),則會被新的參數(shù)自動覆蓋。HAProxy配置文件Frontend部分主要用于處理請求的虛擬節(jié)點(diǎn),F(xiàn)rontend可以將匹配到本地區(qū)域的請求交給下邊的backend。可根據(jù)ACL規(guī)則直接指定需要使用的后端服務(wù)器Backend部分主要用于配置后端服務(wù)器集群,即一組后端的真實服務(wù)器,用來處理前端傳來的請求,同樣支持ACL規(guī)則,與LVS的真實服務(wù)器類似。Listen部分是fontend與backend部分的集合體,在目前版本的配置文件中,默認(rèn)已將其移除,但是仍然可以使用,如開啟HAPOXY自帶的Web監(jiān)控平臺。9.2HAProxy配置文件參數(shù)lglobal#全局參數(shù)global模塊的設(shè)置loglocal2#log語法:log<address_1>[max_level_1]#全局的日志配置,使用log關(guān)鍵字,指定使用上的syslog服務(wù)中的local0日志設(shè)備,記錄日志等級為info的日志chroot/var/lib/haproxy#工作目錄pidfile/var/run/haproxy.pid#進(jìn)程pid文件maxconn4000#最大連接數(shù)userhaproxy#所屬用戶grouphaproxy#所屬用戶組daemon#以守護(hù)進(jìn)程方式運(yùn)行haproxystatssocket/var/lib/haproxy/stats#定義socket套接字,針對在線維護(hù)很有幫助globaldefaultsdefaults#defaults模塊的設(shè)置
modehttp#默認(rèn)的模式{tcp|http|health},health只會返回OKlogglobal#應(yīng)用全局的日志配置
optionhttplog#啟用日志記錄HTTP請求,默認(rèn)不記錄HTTP請求日志
optiondontlognull#不記錄健康檢查的日志信息
optionhttp-server-close#每次請求完畢后主動關(guān)閉http通道
optionforwardforexcept/8#啟用X-Forwarded-For,將客戶端的真實IP寫入其中。
optionredispatch#在連接失敗的情況下啟用或禁用會話重新分發(fā),默認(rèn)值是1retries3#定義連接后端服務(wù)器的失敗重連次數(shù),連接失敗次數(shù)超過此值后將會將對應(yīng)后端服務(wù)器標(biāo)記為不可用
timeouthttp-request10s#http請求超時時間
timeoutqueue1m#一個請求在隊列里的超時時間
timeoutconnect10s#連接超時
timeoutclient1m#客戶端超時
timeoutserver1m#服務(wù)器端超時
timeouthttp-keep-alive10s#設(shè)置http-keep-alive的超時時間
timeoutcheck10s#檢測超時
maxconn3000#每個進(jìn)程可用的最大連接數(shù)9.2HAProxy配置文件參數(shù)frontendmain*:80#frontend模塊的設(shè)置,定義了一個前端
aclurl_staticpath_beg-i/static/images/javascript/stylesheetsaclurl_staticpath_end-i.jpg.gif.png.css.js#這里定義了一個acl規(guī)則
use_backendstaticifurl_static#如果匹配到了acl,則訪問后端的static模塊default_backendmy_webserver#如果沒有匹配到acl,則將請求丟給默認(rèn)的模塊frontendbackendbackendstatic#定義第一個后端模塊,staticbalanceroundrobin#負(fù)載均衡算法為輪詢serverstatic:80check#后端服務(wù)器地址backendmy_webserver#定第二個后端,my_wenserverbalanceroundrobin#負(fù)載均衡算法
serverweb013:80checkinter2000fall3weight30#定義的多個后端
serverweb024:80checkinter2000fall3weight30#定義的多個后端
serverweb035:80checkinter2000fall3weight30#定義的多個后端listenlistenstats#定義一個listen模塊,用于狀態(tài)檢測modehttp#模式采用httpbind:8888#綁定本機(jī)的地址及端口statsenable#啟用狀態(tài)檢測功能statsuri/haproxy-status#狀態(tài)檢測的URIstatsauthhaproxy:123456#訪問檢測界面的用戶名和密碼HAProxy訪問控制列表HAProxy能夠從請求、響應(yīng)流、客戶端或服務(wù)器信息、表、環(huán)境信息等提取數(shù)據(jù),提取此類數(shù)據(jù)的操作被稱為獲取樣本。檢索時,這些樣本可以用于實現(xiàn)各種目的,最常見的是將它們與預(yù)定義的稱為模式的數(shù)據(jù)進(jìn)行對比。9.2HAProxy訪問控制列表●從數(shù)據(jù)流、表或環(huán)境中提取數(shù)據(jù)樣本;●對提取的樣本可選的應(yīng)用格式進(jìn)行轉(zhuǎn)換;●將一種或多種模式匹配應(yīng)用到樣本;●當(dāng)模式與樣本匹配時,執(zhí)行操作。HAProxy訪問控制列表原則訪問控制列表(ACL)提供了靈活的解決方案來執(zhí)行內(nèi)容切換,或者基于從請求、響應(yīng)、任何環(huán)境狀態(tài)中提取出來的數(shù)據(jù)來做出決策。執(zhí)行的操作通常包括阻塞請求、選擇后端或添加HTTP頭部,使用原則非常簡單。9.2HAProxy訪問控制列表常用選項
ACL可用于frontend、backend或listen部分,但是最常見的是用于frontend部分。其語法如下:acl<aclname><criterion>[flags][operator][<value>]…常用的選項:
AclACL關(guān)鍵字,定義ACL規(guī)則;
Aclname
ACL規(guī)則名,嚴(yán)格區(qū)分大小寫,只能使用大寫字母、小寫字母、數(shù)字、-(中線)、(下劃線)(點(diǎn)號)和:(冒號);
Criterion
獲取樣本方法的名稱,常見的有hdrbeg(host)、hdr.dom(host)、hdr(host)、path.beg、pathend、url、ur_sub、ur_dir.ur_beg、urlend、urllen等。
Flags
參數(shù),如:-filename等。
Operator
操作符,并不是所有的criterion都支持此操作符。
Value
通常指匹配的路徑或文件等,若存在多個,則使用空格分隔。
HAProxy配置實例本節(jié)將演示如何配置HAProxy。在操作之前,請確保所有服務(wù)器均設(shè)置好路由轉(zhuǎn)發(fā)功能且處于同一局域網(wǎng)內(nèi),同時服務(wù)器已完成了一些常用的初始化設(shè)置,如設(shè)置主機(jī)名、關(guān)閉SELinux,后續(xù)不再進(jìn)行說明。HAProxy的搭建主要分為兩部分:后端的真實服務(wù)器(RealServer)搭建和前端的負(fù)載調(diào)度器(LoadBalancer)搭建。
此外,HAProxy還自帶一個基于Web的監(jiān)控平臺,可以查看集群中所有后端服務(wù)器的運(yùn)行狀態(tài)、配置分組等信息,也可以對后端的節(jié)點(diǎn)進(jìn)行部分管理操作,在升級節(jié)點(diǎn)、故障維護(hù)時非常有用。右邊為簡單的原理圖。9.2HAProxy配置實例RealServerLoadBalancer9.2HAProxy配置實例IP地址:39作用:負(fù)載調(diào)度器Haproxy前端負(fù)載均衡調(diào)都器IP地址:41作用:提供后端服務(wù)Webserver2后端真實服務(wù)器IP地址:40作用:提供后端服務(wù)Webserver1后端真實服務(wù)器對防火墻進(jìn)行配置,使其允許80端口持續(xù)對外提供服務(wù),命令如下:9.2Webserver1配置
1、在webserver1上安裝web服務(wù)。
2、在webserver1上編寫一個簡單的html頁面。操作如下:
3、最后wq保存退出。
4、重啟服務(wù),使其生效。9.2Webserver1配置
5、在瀏覽器里可以查看一下效果。如下:9.2Webserver2配置
1、與webserver1一樣,先安裝web服務(wù)。
2、在webserver2上也編寫一個簡單的html頁面。
3、同樣wq保存退出。
4、重啟服務(wù),使其生效。9.2Webserver2配置
5、在瀏覽器里可以查看一下效果。如下:9.2HAProxy配置1、在負(fù)載均衡器上安裝haproxy服務(wù)。2、安裝完成后對其配置文件進(jìn)行修改。9.2HAProxy配置3、跳轉(zhuǎn)到frontend與backend部分,將內(nèi)容修改為以下內(nèi)容:frontendwebbind*:80#監(jiān)聽80端口default_backendwebsrvs#調(diào)用后端web服務(wù)器組backendwebsrvs#定義后端web服務(wù)器組balanceroundrobin#輪詢模式serverweb140:80check#check表示檢測監(jiān)控狀態(tài)serverweb241:80check#
main
frontend
which
proxys
to
the
backends這行后面多余的部分全部用#注釋掉4、修改完成后重啟服務(wù),使其生效。9.2HAProxy配置5、在瀏覽器里訪問39,看下效果。效果如下:因為這里使用的輪詢模式,所以負(fù)載均衡器會從兩個服務(wù)器上輪詢調(diào)度服務(wù)使用web監(jiān)控平臺HAProxy自帶的Web監(jiān)控平臺在升級節(jié)點(diǎn)、更新維護(hù)時非常有用。開啟HAProxy自帶的web監(jiān)控平臺需要在負(fù)載均衡器上進(jìn)行相關(guān)的配置。9.2使用web監(jiān)控平臺1、修改配置文件/etc/haprox/haproy.cig,在文件末尾添加以下內(nèi)容。listenadmin_statsbind*:8080#監(jiān)聽8080端口,不能與之前的端口沖突
statsenable#狀態(tài)監(jiān)控頁面功能啟動
statsrefresh30s#統(tǒng)計頁面自動刷新時間
statsuri/admin#指定url路徑
statsrealmhaproxy#定義提示頁面
statsauthadmin:123456#登錄賬號和密碼
statshide-version#隱藏系統(tǒng)頁面上haproxy的版本信息
statsadminifTRUE#允許管理員控制相關(guān)代理
2、重啟服務(wù),使其生效。
3、配置永久生效的防火墻規(guī)則,允許haproxy通過8080端口持續(xù)對外提供服務(wù),命令如下:3、完成后即可通過瀏覽器使用http://39:8080/admin登錄監(jiān)控平臺查看。登錄成功后,效果如下:9.2使用web監(jiān)控平臺9.2web監(jiān)控平臺參數(shù)簡介QueueCur:currentqueuedrequests//當(dāng)前的隊列請求數(shù)量Max:maxqueuedrequests
//最大的隊列請求數(shù)量Limit:
//隊列限制數(shù)量Sessionrate(每秒的連接回話)列表:scur:currentsessions
//每秒的當(dāng)前回話的限制數(shù)量smax:maxsessions
//每秒的新的最大的回話量slim:sessionslimit
//每秒的新回話的限制數(shù)量Sessions
Total:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)外包廚房合同范本
- 供貨工廠采購合同范本
- 個人出售公房合同范本
- 產(chǎn)品意向銷售合同范本
- 產(chǎn)品借用合作合同范本
- 倉買購貨合同范本
- 保姆找工作合同范本
- 使用授權(quán)合同范本
- 體育裁判勞務(wù)合同范本
- 個人開店合伙合同范本
- 婦產(chǎn)科全套課件
- 穴位貼敷的運(yùn)用課件
- 中心靜脈壓與有創(chuàng)動脈血壓監(jiān)測護(hù)理
- 人教版道德與法治五年級下冊全冊課件(完整版)
- 京東集團(tuán)員工手冊
- 房屋租賃交接家私清單
- 教師教學(xué)常規(guī)培訓(xùn)講座課件
- 小兒哮喘(支氣管哮喘)中醫(yī)診療方案
- 病毒性腦炎小兒患兒護(hù)理查房課件
- 高中綜合素質(zhì)心理健康自我評價
- 義務(wù)教育歷史課程標(biāo)準(zhǔn)(2022年版)
評論
0/150
提交評論