云計(jì)算集群技術(shù)及應(yīng)用全套教學(xué)課件_第1頁
云計(jì)算集群技術(shù)及應(yīng)用全套教學(xué)課件_第2頁
云計(jì)算集群技術(shù)及應(yīng)用全套教學(xué)課件_第3頁
云計(jì)算集群技術(shù)及應(yīng)用全套教學(xué)課件_第4頁
云計(jì)算集群技術(shù)及應(yīng)用全套教學(xué)課件_第5頁
已閱讀5頁,還剩703頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章集群基礎(chǔ)知識(shí)1.1集群簡(jiǎn)介1.2

集群的分類1.3

負(fù)載均衡1.4服務(wù)器健康檢查第1章-集群基礎(chǔ)知識(shí).pptx第2章-Web服務(wù)集群.pptx第3章-數(shù)據(jù)庫集群.pptx第4章-NFS存儲(chǔ)集群.pptx第5章-Keepalived高可用集群方案.pptx第6章-LVS4層負(fù)載集群.pptx第7章-HAProxy7層負(fù)載集群.pptx第8章-大型網(wǎng)站集群架構(gòu)項(xiàng)目1.pptx第9章-大型網(wǎng)站集群架構(gòu)項(xiàng)目2.pptx全套可編輯PPT課件熟悉集群的核心概念熟悉集群的分類及常用軟件熟悉四層和七層負(fù)載均衡的技術(shù)原理熟悉負(fù)載均衡的主要方式了解服務(wù)器健康檢測(cè)163引言說到集群,講一個(gè)例子幫助讀者理解其概念。原先的飯店只有一個(gè)廚師,負(fù)責(zé)洗菜、切菜、備料、炒菜,飯店正常運(yùn)行,后來客人多了,一個(gè)廚師滿足不了上菜需求,于是老板又招了廚師,兩個(gè)廚師可以炒出同樣的菜,兩個(gè)廚師就是集群。隨著飯店規(guī)模和客流量的增多,還可以繼續(xù)招廚師,這些廚師就是一個(gè)集群。1.1集群簡(jiǎn)介集群的核心概念集群的特點(diǎn)1.1集群簡(jiǎn)介1.1.1集群的核心概念單機(jī)結(jié)構(gòu)是指所有應(yīng)用或服務(wù)部署到一臺(tái)服務(wù)器上??上攵?,當(dāng)業(yè)務(wù)不斷擴(kuò)大,而單機(jī)的處理能力有限,這時(shí)單機(jī)的硬件資源無法滿足業(yè)務(wù)需求。集群(Cluster)是指部署相同應(yīng)用或服務(wù)的一組(多臺(tái))服務(wù)器組成一個(gè)并行或者分布式系統(tǒng),作為一個(gè)整體向用戶提供網(wǎng)絡(luò)資源。組成集群的單個(gè)服務(wù)器為一個(gè)節(jié)點(diǎn)(Node),這些節(jié)點(diǎn)可以相互通信,協(xié)同為用戶提供相同的資源,一個(gè)節(jié)點(diǎn)的宕機(jī)并不影響其他節(jié)點(diǎn)的運(yùn)行和用戶使用。每個(gè)節(jié)點(diǎn)就像是單機(jī)的“分身術(shù)”,其處理能力隨之成倍提升。1.1集群簡(jiǎn)介1.1.1集群的核心概念負(fù)載均衡(LoadBalance,LB)是指將負(fù)載(工作任務(wù))分?jǐn)偨o到多個(gè)服務(wù)器上進(jìn)行執(zhí)行,如Web服務(wù)器、企業(yè)核心應(yīng)用服務(wù)器、FTP服務(wù)器等,協(xié)同處理工作任務(wù)。當(dāng)大量用戶請(qǐng)求集群系統(tǒng)時(shí),通過負(fù)載均衡器使得每個(gè)節(jié)點(diǎn)的負(fù)載情況比較平均,從而達(dá)到集群節(jié)點(diǎn)分擔(dān)流量的作用。高可用(HighAvailability,HA)是指保持服務(wù)的高可用性,即保證一個(gè)系統(tǒng)不會(huì)因一臺(tái)服務(wù)器發(fā)生故障或宕機(jī)而導(dǎo)致服務(wù)停止。如果某個(gè)節(jié)點(diǎn)服務(wù)器故障,負(fù)載均衡器則會(huì)將請(qǐng)求轉(zhuǎn)移到其他節(jié)點(diǎn)上,實(shí)現(xiàn)冗余接管,這就是系統(tǒng)的高可用。對(duì)于商用網(wǎng)站,這也就要求即使是訪問量小的服務(wù)或應(yīng)用,也需要部署兩臺(tái)服務(wù)器做集群。1.1集群簡(jiǎn)介1.1.1集群的核心概念集群結(jié)構(gòu)常常與分布式結(jié)構(gòu)協(xié)同合作,相輔相成。前言中講到,兩個(gè)廚師一起洗菜、切菜、備料、炒菜,做著同樣的工作,構(gòu)成集群。老板為了使廚師專心炒菜,又招了2名配菜師,負(fù)責(zé)洗菜、切菜和備料,兩名配菜師又構(gòu)成一個(gè)集群,而配菜師與廚師的關(guān)系則為分布式結(jié)構(gòu)。由此理解分布式結(jié)構(gòu)是指將同一業(yè)務(wù)模塊分為多個(gè)(兩個(gè)以上)子任務(wù),部署到多個(gè)服務(wù)器上,即不同的業(yè)務(wù)模塊部署到不同的服務(wù)器上。1.1集群簡(jiǎn)介1.1.1集群的核心概念分布式與集群的區(qū)別如下。(1)集群指的是將幾臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù)。分布式是指將不同的業(yè)務(wù)模塊部署到在不同的服務(wù)器。(2)集群并不一定就是分布式的,而分布式的每一個(gè)節(jié)點(diǎn),都可以做集群。集群具有一定組織性,一臺(tái)服務(wù)器宕了,其他的服務(wù)器繼續(xù)提供服務(wù)。分布式的每一個(gè)節(jié)點(diǎn)完成不同的業(yè)務(wù),一個(gè)節(jié)點(diǎn)宕了,這個(gè)業(yè)務(wù)就不可訪問了。1.1集群簡(jiǎn)介1.1.2集群的特點(diǎn)1.高可用性和容錯(cuò)性集群架構(gòu)中的某臺(tái)服務(wù)器因故障宕機(jī),系統(tǒng)通過進(jìn)程遷移到其他可用的節(jié)點(diǎn)繼續(xù)提供服務(wù),大大提高了系統(tǒng)的可用性和可靠性,有效地減少業(yè)務(wù)的損失,極大地滿足了互聯(lián)網(wǎng)企業(yè)7*24小時(shí)提供服務(wù)的要求。1.1集群簡(jiǎn)介1.1.2集群的特點(diǎn)2.高性能到目前為止,即使是大型計(jì)算機(jī),計(jì)算能力也是有限的,比如計(jì)算高分子材料分析、天氣預(yù)報(bào)、飛行器數(shù)字模擬等密集型應(yīng)用,其計(jì)算時(shí)間可能會(huì)很長(zhǎng)。大家所熟悉的百度、淘寶、谷歌等大型網(wǎng)站,一天的訪問量達(dá)上百億,也絕不是一臺(tái)或幾臺(tái)大型機(jī)就可以構(gòu)建的。集群便可以很好地處理這些復(fù)雜的業(yè)務(wù),將上萬臺(tái)服務(wù)器構(gòu)成高性能集群,在并發(fā)或總請(qǐng)求量很高時(shí),集群就顯示出超強(qiáng)的運(yùn)算處理能力。1.1集群簡(jiǎn)介1.1.2集群的特點(diǎn)3.可擴(kuò)展性例如,銀行處理業(yè)務(wù)的柜臺(tái)一般都有多個(gè),如果只設(shè)置2個(gè)柜臺(tái),當(dāng)客戶達(dá)到上百人時(shí),那么辦理業(yè)務(wù)的柜臺(tái)壓力增長(zhǎng),滿足不了客戶的需求。這時(shí)就需要多加幾個(gè)柜臺(tái),從而提高處理業(yè)務(wù)的效率。在集群系統(tǒng)中,當(dāng)服務(wù)負(fù)載和壓力增長(zhǎng)時(shí),只需要將新的服務(wù)器加入現(xiàn)有集群架構(gòu)中,就可以實(shí)現(xiàn)系統(tǒng)的擴(kuò)展和升級(jí)。而在用戶訪問角度,幾乎不會(huì)感覺到變化。1.1集群簡(jiǎn)介1.1.2集群的特點(diǎn)4.成本相對(duì)較低一臺(tái)超級(jí)計(jì)算機(jī)的價(jià)格在上百美元,而一套較好的集群設(shè)備,包括軟硬件的開銷超過10萬美元,相對(duì)便宜不少。在獲得同樣性能的情況下,集群系統(tǒng)具有更高的性價(jià)比。5.負(fù)載均衡負(fù)載均衡可以把工作任務(wù)比較均勻的分?jǐn)偨o集群環(huán)境下的各個(gè)節(jié)點(diǎn),有效地提高數(shù)據(jù)的吞吐量。1.2集群的分類負(fù)載均衡集群高可用集群高性能計(jì)算集群1.2集群的分類1.2.1負(fù)載均衡集群負(fù)載均衡集群是指在使用一組應(yīng)用程序?yàn)榇罅靠蛻籼峁┓?wù)時(shí),通過若干前端負(fù)載均衡器將客戶請(qǐng)求分發(fā)到后端應(yīng)用集群服務(wù)器的技術(shù),各個(gè)節(jié)點(diǎn)的訪問請(qǐng)求被動(dòng)態(tài)分配,達(dá)到整個(gè)系統(tǒng)的高可用和高性能。在企業(yè)中,負(fù)載均衡集群以提高服務(wù)的并發(fā)處理能力為重點(diǎn),在系統(tǒng)架構(gòu)中表現(xiàn)得更為實(shí)用、性價(jià)比更高??蛻粼L問請(qǐng)求一般包括網(wǎng)絡(luò)流量負(fù)載和應(yīng)用程序負(fù)載。例如,網(wǎng)站初期僅支持100個(gè)用戶同時(shí)在線,網(wǎng)站規(guī)模小,瀏覽量?jī)H個(gè)位數(shù),這時(shí)單臺(tái)服務(wù)器比多個(gè)服務(wù)集群要快,用戶體驗(yàn)感更好,不會(huì)感受到網(wǎng)站的卡頓。1.2集群的分類1.2.1負(fù)載均衡集群隨著網(wǎng)站規(guī)模增大,瀏覽量人數(shù)增多,當(dāng)并發(fā)請(qǐng)求或總請(qǐng)求數(shù)量大于單臺(tái)服務(wù)器的負(fù)載能力時(shí),用戶的體驗(yàn)感隨著瀏覽量的增加直線下降。這時(shí)可以增加幾臺(tái)服務(wù)器同時(shí)運(yùn)行這個(gè)網(wǎng)站,在服務(wù)器前搭建一個(gè)轉(zhuǎn)發(fā)器用來分發(fā)用戶的請(qǐng)求,使每個(gè)服務(wù)器接收的請(qǐng)求和負(fù)載壓力盡可能均勻,這樣每個(gè)用戶的請(qǐng)求都能很快被處理,用戶的體驗(yàn)感得到提升。這個(gè)用來分發(fā)用戶請(qǐng)求的轉(zhuǎn)發(fā)器便是負(fù)載均衡,負(fù)載均衡以一種便捷、成本低廉的方式提高了網(wǎng)絡(luò)處理數(shù)據(jù)的能力。1.2集群的分類1.2.1負(fù)載均衡集群負(fù)載均衡集群的架構(gòu)示意圖當(dāng)客戶端的請(qǐng)求發(fā)送到服務(wù)端時(shí),首先會(huì)到達(dá)目錄服務(wù)器,經(jīng)過目錄服務(wù)器的分配,這些請(qǐng)求才會(huì)傳遞到真實(shí)服務(wù)器進(jìn)行處理。所謂的目錄服務(wù)器就是負(fù)載均衡服務(wù)器,專門用于將用戶的請(qǐng)求分發(fā)到不同的后端服務(wù)器,負(fù)載均衡服務(wù)器本身并不會(huì)對(duì)請(qǐng)求做任何處理。負(fù)載均衡集群的主要作用就是分擔(dān)訪問流量以及保持業(yè)務(wù)的連續(xù)性,實(shí)現(xiàn)負(fù)載均衡典型的開源軟件有LVS、Nginx、HAProxy等。1.2集群的分類1.2.2高可用集群高可用集群是指以盡量減少服務(wù)中斷時(shí)間為目的的集群技術(shù),在任意一個(gè)節(jié)點(diǎn)失效時(shí),該節(jié)點(diǎn)所分配的所有工作任務(wù)將會(huì)自動(dòng)分配給其他可用節(jié)點(diǎn),保證集群正常運(yùn)行并提供服務(wù),保持業(yè)務(wù)的正常運(yùn)行。保證集群服務(wù)100%時(shí)間不中斷是不可能的,還要考慮計(jì)算機(jī)軟硬件的容錯(cuò)性。例如重量級(jí)高配置的淘寶網(wǎng),當(dāng)“雙十一”活動(dòng)開始時(shí),一下涌入大量用戶,也會(huì)出現(xiàn)訂單無法支付的情況,因此只能保證集群服務(wù)盡可能的可用,不能保證100%時(shí)間可用。1.2集群的分類1.2.2高可用集群互聯(lián)網(wǎng)中,通常使用網(wǎng)站在線時(shí)間/(在線時(shí)間+故障處理時(shí)間)來衡量服務(wù)的可用性??捎眯藻礄C(jī)時(shí)間99%一年有3天不在線99.9%一年有0.3天不在線99.99%一年有0.03天不在線99.999%一年有0.003天不在線1.2集群的分類1.2.2高可用集群高可用集群主要實(shí)現(xiàn)自動(dòng)偵測(cè)(Auto-Detect)故障、自動(dòng)切換/故障轉(zhuǎn)移(FailOver)和自動(dòng)恢復(fù)(FailBack)。1.2集群的分類1.2.2高可用集群負(fù)載均衡高可用的架構(gòu)示意圖設(shè)置兩臺(tái)目錄服務(wù)器,其中一臺(tái)正常工作,對(duì)外提供服務(wù)。另一臺(tái)當(dāng)作備用,當(dāng)正常工作的目錄服務(wù)器宕機(jī),該服務(wù)器立刻頂替失效的目錄服務(wù)器進(jìn)行工作。高可用集群主要是為了保證服務(wù)的高度可用性,常用的開源軟件包括Keepalived、Heartbeat等。1.2集群的分類1.2.3高性能計(jì)算集群高性能計(jì)算集群,又稱科學(xué)計(jì)算集群,是指用于計(jì)算海量數(shù)據(jù),解決復(fù)雜問題的技術(shù)。人們平時(shí)所說的超級(jí)計(jì)算機(jī)就是高性能計(jì)算集群,其內(nèi)部由十至上萬個(gè)獨(dú)立處理器組成,將大任務(wù)切割為小任務(wù)分別進(jìn)行處理,擁有極大的數(shù)據(jù)存儲(chǔ)容量和極快的數(shù)據(jù)處理速度。高性能計(jì)算集群主要由大數(shù)據(jù)工程師進(jìn)行維護(hù),故在此不做過多介紹。1.3負(fù)載均衡負(fù)載均衡的分類四層和七層負(fù)載均衡的區(qū)別負(fù)載均衡的主要方式負(fù)載均衡的算法1.3負(fù)載均衡1.3.1負(fù)載均衡的分類負(fù)載均衡按軟硬件分類,軟件有Nginx、LVS、Amoeba、HAProxy等,硬件有ROSE、安瑞科技、F5、Citrix等。軟件類的負(fù)載均衡是指在服務(wù)器相應(yīng)的操作系統(tǒng)上安裝軟件來實(shí)現(xiàn)負(fù)載均衡,配置簡(jiǎn)單,使用靈活;硬件類的負(fù)載均衡是指在服務(wù)器和外部網(wǎng)絡(luò)之間安裝的負(fù)載均衡設(shè)備,整體性能高。1.3負(fù)載均衡1.3.1負(fù)載均衡的分類OSI七層模型應(yīng)用層表示層會(huì)話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層①②③④⑤⑥⑦1.3負(fù)載均衡1.3.1負(fù)載均衡的分類負(fù)載均衡器按OSI七層模型可以分為二層、三層、四層、七層。負(fù)載均衡OSI七層模型位置技術(shù)原理典型代表二層負(fù)載均衡數(shù)據(jù)鏈路層通過一個(gè)虛擬MAC地址接收請(qǐng)求,然后再分配到后端真實(shí)的MAC地址F5、LVSDR模式三層負(fù)載均衡網(wǎng)絡(luò)層通過一個(gè)虛擬IP地址接收請(qǐng)求,然后再分配到后端真實(shí)的IP地址LVSTUNNEL模式(IP隧道)四層負(fù)載均衡傳輸層通過虛擬IP+端口接收請(qǐng)求,然后再轉(zhuǎn)發(fā)到后端真實(shí)的服務(wù)器F5、LVSNAT、HAProxy、Nginx、SLB七層負(fù)載均衡應(yīng)用層通過虛擬的URL、IP或主機(jī)名接收請(qǐng)求,然后再轉(zhuǎn)發(fā)到后端真實(shí)的服務(wù)器F5、LVSNAT、HAProxy、Nginx、SLBDNS

一個(gè)域名有多個(gè)A解析、智能解析萬網(wǎng)、DNSPod1.3負(fù)載均衡1.3.1負(fù)載均衡的分類表中還有除OSI七層模型外的DNS模式,在實(shí)際應(yīng)用中使用DNS做負(fù)載均衡是常用的方式。負(fù)載均衡器通常被稱為四層交換機(jī)或七層交換機(jī)。四到七層負(fù)載均衡就是依據(jù)四層或七層信息向后端服務(wù)器集群轉(zhuǎn)發(fā)流量,起到負(fù)載均衡的作用。1.3負(fù)載均衡1.3.1負(fù)載均衡的分類1.四層負(fù)載均衡四層負(fù)載均衡是基于IP和端口的負(fù)載均衡,即通過發(fā)布三層的IP地址(虛擬IP)和四層的端口號(hào),來對(duì)流量做負(fù)載均衡和分發(fā)處理,轉(zhuǎn)發(fā)到后端服務(wù)器,并且記錄該TCP或UDP協(xié)議的流量到達(dá)的服務(wù)器,下次仍由此臺(tái)服務(wù)器處理?;谒膶拥呢?fù)載均衡可達(dá)到每秒幾十萬的處理量,效率更高。1.3負(fù)載均衡1.3.1負(fù)載均衡的分類2.七層負(fù)載均衡七層負(fù)載均衡是根據(jù)用戶請(qǐng)求的內(nèi)容等應(yīng)用層信息為其分配相對(duì)應(yīng)的后端服務(wù)器,在這種模式下可以在同一端口下同時(shí)運(yùn)行多個(gè)Web服務(wù)器。例如,同一個(gè)Web服務(wù)器的負(fù)載均衡,在根據(jù)VIP(虛擬IP)和80端口判斷應(yīng)處理得流量的同時(shí),還能夠根據(jù)七層的瀏覽器類別、語言、URL來決定是否進(jìn)行負(fù)載均衡,如果用戶的語言為中文,則轉(zhuǎn)發(fā)至中文服務(wù)器進(jìn)行處理。四層負(fù)載均衡不理解如HTTP、FTP等應(yīng)用協(xié)議,而七層負(fù)載均衡能理解應(yīng)用協(xié)議?;谄邔拥呢?fù)載均衡需要完成兩次TCP連接,第一次是客戶端與負(fù)載均衡器,第二次是負(fù)載均衡器與真實(shí)服務(wù)器。1.3負(fù)載均衡1.3.1負(fù)載均衡的分類2.七層負(fù)載均衡七層負(fù)載均衡,又被稱為“內(nèi)容交換”,主要面向來自客戶端的應(yīng)用層內(nèi)容,在負(fù)載均衡器設(shè)定的調(diào)度算法的基礎(chǔ)上進(jìn)行流量分發(fā),即按需分發(fā)。1.3負(fù)載均衡1.3.1負(fù)載均衡的分類2.七層負(fù)載均衡例如一個(gè)網(wǎng)站,將對(duì)圖片類的請(qǐng)求轉(zhuǎn)發(fā)到特定的圖片服務(wù)器并可以使用緩存技術(shù);將對(duì)文字類的請(qǐng)求轉(zhuǎn)發(fā)到特定的文字服務(wù)器并可以使用壓縮技術(shù)。當(dāng)用戶訪問網(wǎng)站圖片時(shí),反向代理將請(qǐng)求發(fā)送給圖片服務(wù)器,當(dāng)用戶訪問網(wǎng)站文字類內(nèi)容時(shí),反向代理便將請(qǐng)求發(fā)送給儲(chǔ)存文字類內(nèi)容的服務(wù)器。從技術(shù)原理的方面講,這種方式可以對(duì)客戶端的請(qǐng)求和服務(wù)器的響應(yīng)進(jìn)行任何意義上的修改,極大地提升了應(yīng)用系統(tǒng)在網(wǎng)絡(luò)層的靈活性。很多在后臺(tái)服務(wù)器(例如Nginx、Apache等)上部署的功能可以前移到負(fù)載均衡設(shè)備上,例如客戶請(qǐng)求中的Header重寫,服務(wù)器響應(yīng)中的關(guān)鍵字過濾或者內(nèi)容插入等功能。1.3負(fù)載均衡1.3.1負(fù)載均衡的分類2.七層負(fù)載均衡負(fù)載均衡設(shè)備如果要根據(jù)真正的應(yīng)用層請(qǐng)求內(nèi)容選擇服務(wù)器,需要先代理最終處理請(qǐng)求的服務(wù)器與客戶端建立TCP連接(三次握手),才可以接收到客戶端發(fā)送的包含應(yīng)用層內(nèi)容的報(bào)文,然后再根據(jù)該報(bào)文中的特定字段以及負(fù)載均衡的調(diào)度算法,選擇處理請(qǐng)求的服務(wù)器。負(fù)載均衡設(shè)備在這種情況下,類似于一個(gè)代理服務(wù)器,負(fù)載均衡會(huì)與客戶端、處理請(qǐng)求的服務(wù)器分別建立TCP連接。所以從技術(shù)原理上來看,七層負(fù)載均衡明顯對(duì)負(fù)載均衡設(shè)備的要求更高,處理七層請(qǐng)求的速度也必然會(huì)低于四層。1.3負(fù)載均衡1.3.1負(fù)載均衡的分類七層負(fù)載均衡的優(yōu)勢(shì)。通過對(duì)HTTP報(bào)頭的檢查,可以檢測(cè)出HTTP4xx、5xx和6xx系列的錯(cuò)誤信息,之后便可以將請(qǐng)求重新發(fā)送到另一臺(tái)服務(wù)器,能夠有效避免應(yīng)用層故障。可以對(duì)請(qǐng)求的數(shù)據(jù)類型(如判斷數(shù)據(jù)包是圖像文件、壓縮文件或多媒體文件格式等)進(jìn)行判斷,把請(qǐng)求分發(fā)給相應(yīng)的服務(wù)器來處理,增加系統(tǒng)性能。能根據(jù)連接請(qǐng)求的類型進(jìn)行流量分發(fā)。能夠判斷來自客戶端的請(qǐng)求類型是普通文本、圖像等靜態(tài)文檔請(qǐng)求,還是asp、cgi等動(dòng)態(tài)文檔請(qǐng)求,把相應(yīng)的請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的服務(wù)器來處理,提高系統(tǒng)的性能及安全性。1.3負(fù)載均衡1.3.1負(fù)載均衡的分類七層負(fù)載均衡的劣勢(shì)。七層負(fù)載均衡受到其所支持的協(xié)議(例如HTTP協(xié)議)限制的同時(shí),也限制了它應(yīng)用的廣泛性,并且檢查HTTP報(bào)頭會(huì)占用大量的系統(tǒng)資源,勢(shì)必會(huì)影響到系統(tǒng)的性能,在高并發(fā)時(shí),負(fù)載均衡設(shè)備自身很容易成為網(wǎng)絡(luò)整體性能的瓶頸。1.3負(fù)載均衡1.3.2四層和七層

負(fù)載均衡的區(qū)別1.技術(shù)原理的區(qū)別四層負(fù)載均衡主要通過客戶端請(qǐng)求報(bào)文中的目標(biāo)地址和端口,再根據(jù)負(fù)載均衡器選擇的轉(zhuǎn)方式,決定最終的真實(shí)服務(wù)器。1.3負(fù)載均衡1.3.2四層和七層

負(fù)載均衡的區(qū)別1.技術(shù)原理的區(qū)別七層負(fù)載均衡主要通過報(bào)文中的應(yīng)用層信息,再根據(jù)負(fù)載均衡器選擇的轉(zhuǎn)發(fā)方式,決定最終的真實(shí)服務(wù)器。1.3負(fù)載均衡1.3.2四層和七層

負(fù)載均衡的區(qū)別2.應(yīng)用場(chǎng)景的需求四層負(fù)載均衡適用于TCP應(yīng)用,比如基于C/S開發(fā)的ERP等系統(tǒng)。四層負(fù)載均衡比七層處理效率高,更適用于網(wǎng)絡(luò)吞吐量和并發(fā)量高的集群,可作為多種軟件的負(fù)載均衡器。七層負(fù)載均衡使得整個(gè)網(wǎng)絡(luò)更加“智能化”,功能多,控制靈活,可根據(jù)用戶訪問內(nèi)容,將訪問請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)服務(wù)器,例如訪問圖片,負(fù)載均衡器會(huì)轉(zhuǎn)發(fā)到圖片服務(wù)器,極大地提高了應(yīng)用系統(tǒng)在網(wǎng)絡(luò)層的靈活性。1.3負(fù)載均衡1.3.2四層和七層

負(fù)載均衡的區(qū)別3.安全性均衡網(wǎng)絡(luò)中常見的黑客攻擊,即黑客控制的眾多源客戶端,也叫作SYNFlood攻擊。黑客會(huì)通過虛假IP向一個(gè)目標(biāo)發(fā)送SYN攻擊,發(fā)送大量報(bào)文,不斷消耗服務(wù)器的相關(guān)資源,以致于服務(wù)器拒絕服務(wù)。四層負(fù)載均衡不能夠攔截SYN攻擊,會(huì)將攻擊轉(zhuǎn)發(fā)到后端服務(wù)器上,而七層負(fù)載均衡可以攔截SYN攻擊,不會(huì)影響后端服務(wù)器。七層負(fù)載均衡還可以設(shè)定安全策略,以過濾不安全報(bào)文,進(jìn)一步提高系統(tǒng)的安全性。由此可見,七層負(fù)載均衡比四層負(fù)載均衡安全性更高。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式HTTP重定向DNS負(fù)載均衡反向代理負(fù)載均衡IP負(fù)載均衡數(shù)據(jù)鏈路層負(fù)載均衡F5硬件負(fù)載均衡1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式1.HTTP重定向HTTP重定向會(huì)根據(jù)客戶端應(yīng)用層的報(bào)文計(jì)算出一個(gè)真實(shí)的Web服務(wù)器IP地址,并將該IP地址寫入HTTP重定向響應(yīng)中返回給客戶端,客戶端收到重定向響應(yīng)之后再去訪問真實(shí)服務(wù)器。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式1.HTTP重定向用戶訪問例如的域名,經(jīng)DNS域名解析獲得的IP地址為00,即HTTP重定向服務(wù)器的IP地址。HTTP重定向服務(wù)器通過負(fù)載均衡算法,向客戶端響應(yīng)重定向至集群中實(shí)際服務(wù)器的地址03,用戶瀏覽器再向真實(shí)地址發(fā)出訪問請(qǐng)求,完成訪問。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式1.HTTP重定向這種工作方式雖然比較簡(jiǎn)單,但客戶端需要發(fā)送多次請(qǐng)求才能完成一次成功的訪問,所以重定向方式實(shí)現(xiàn)的負(fù)載均衡性能較差。從另一方面講,HTTP重定向服務(wù)器自身的處理能力可能會(huì)成為瓶頸。使用HTTP302響應(yīng)重定向之后,有可能被搜索引擎判斷為SEO作弊,從而降低搜索排名。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式2.DNS方式DNS負(fù)責(zé)提供域名到IP解析的過程,這時(shí)DNS服務(wù)器也就充當(dāng)了負(fù)載均衡,很多域名運(yùn)營商提供的智能DNS以及多線解析都是利用了DNS負(fù)載均衡的技術(shù),開源的Bind軟件就可提供電信聯(lián)通多線解析等強(qiáng)大的技術(shù)。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式2.DNS方式解析百度的域名[root@qfedu~]#dig

;<<>>DiG9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7<<>>;;globaloptions:+cmd;;Gotanswer:;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:62441;;flags:qrrdra;QUERY:1,ANSWER:2,AUTHORITY:0,ADDITIONAL:1

;;OPTPSEUDOSECTION:;EDNS:version:0,flags:;MBZ:0x0005,udp:4096;;QUESTIONSECTION:;.INA

;;ANSWERSECTION:.5INA51.5INA48

;;Querytime:3msec;;SERVER:#53();;WHEN:五11月2600:28:47EST2021;;MSGSIZErcvd:701.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式2.DNS方式解析百度的域名百度的域名解析其實(shí)是一對(duì)多的形式。例如一個(gè)域名對(duì)應(yīng)一組web服務(wù)器IP地址,域名解析時(shí)經(jīng)過DNS服務(wù)器的算法將一個(gè)域名請(qǐng)求分配到合適的真實(shí)服務(wù)器上。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式2.DNS方式DNS服務(wù)器寫入多條A記錄:INA01、INA02、INA03。用戶請(qǐng)求域名解析,DNS服務(wù)器根據(jù)A記錄采用負(fù)載均衡算法向用戶返回真實(shí)物理服務(wù)器IP地址,用戶瀏覽器重新請(qǐng)求該IP地址。

DNS域名解析常作為第一級(jí)負(fù)載均衡器。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式2.DNS方式DNS負(fù)載均衡的控制權(quán)在于域名服務(wù)商,網(wǎng)站管理者可能無法做出過多的改善和管理,且不能夠按照服務(wù)器的處理能力來分配負(fù)載。DNS負(fù)載均衡采用的是簡(jiǎn)單的輪詢算法,不能區(qū)分服務(wù)器之間的差異,不能反映服務(wù)器當(dāng)前運(yùn)行狀態(tài),所以實(shí)現(xiàn)負(fù)載均衡的效果并不是很好。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式DNS實(shí)現(xiàn)負(fù)載均衡的方式的優(yōu)缺點(diǎn)如下。優(yōu)點(diǎn):將負(fù)載均衡的工作交給了DNS,省卻了網(wǎng)站管理維護(hù)負(fù)載均衡服務(wù)器的麻煩,同時(shí)許多DNS還支持基于地理位置的域名解析,將域名解析成距離用戶地理最近的一個(gè)服務(wù)器地址,加快訪問速度,改善性能。缺點(diǎn):目前的DNS解析是多級(jí)解析,每一級(jí)DNS都可能對(duì)A記錄進(jìn)行緩存,當(dāng)某一服務(wù)器下線后,該服務(wù)器對(duì)應(yīng)的DNS記錄A可能仍然存在,導(dǎo)致分配到該服務(wù)器的用戶訪問失敗。為了使本DNS服務(wù)器和其他DNS服務(wù)器及時(shí)交互,保證DNS數(shù)據(jù)及時(shí)更新,使地址能隨機(jī)分配,一般都要將DNS的刷新時(shí)間設(shè)置得較小,但太小將會(huì)使DNS流量大增造成額外的網(wǎng)絡(luò)問題。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式3.反向代理方式反向代理部署在Web服務(wù)器前面,提供負(fù)載均衡的功能,同時(shí)管理著一組Web服務(wù)器,根據(jù)負(fù)載均衡算法將訪問請(qǐng)求轉(zhuǎn)發(fā)給不同的Web服務(wù)器,處理結(jié)果經(jīng)過反向代理返回給瀏覽器。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式3.反向代理方式客戶端請(qǐng)求的地址是反向代理服務(wù)器的地址0,反向代理服務(wù)器收到請(qǐng)求后,經(jīng)過負(fù)載均衡算法計(jì)算得到一個(gè)真實(shí)物理地址(Web服務(wù)器地址),并將請(qǐng)求轉(zhuǎn)發(fā)給真實(shí)服務(wù)器,真實(shí)服務(wù)器處理完成后通過反向代理服務(wù)器返回給客戶端。因?yàn)榉聪虼矸?wù)器轉(zhuǎn)發(fā)請(qǐng)求是在HTTP協(xié)議層面的,所以又叫做應(yīng)用層負(fù)載均衡。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式4.IP負(fù)載方式IP負(fù)載均衡是在網(wǎng)絡(luò)層和傳輸層(IP和端口)通過修改目標(biāo)地址進(jìn)行負(fù)載均衡。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式4.IP負(fù)載方式客戶端的請(qǐng)求到達(dá)負(fù)載均衡服務(wù)器時(shí),負(fù)載均衡服務(wù)器在讀取報(bào)文之后根據(jù)算法得到一臺(tái)真實(shí)服務(wù)器地址,然后將用戶請(qǐng)求的目標(biāo)地址修改成該真實(shí)服務(wù)器地址,由真實(shí)服務(wù)器處理請(qǐng)求,請(qǐng)求處理完后返回給負(fù)載均衡服務(wù)器,負(fù)載均衡服務(wù)器收到響應(yīng)后將響應(yīng)報(bào)文的目標(biāo)地址修改為客戶端地址后再將數(shù)據(jù)返回給客戶端。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式4.IP負(fù)載方式該方法比起反向代理方式響應(yīng)請(qǐng)求的速度要更快,處理性能更好。由于集群最大相應(yīng)數(shù)據(jù)吞吐量受制于負(fù)載均衡服務(wù)器的網(wǎng)卡帶寬,難以滿足提供下載服務(wù)或視頻服務(wù)等需要大量數(shù)據(jù)傳輸?shù)木W(wǎng)站。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式5.鏈路層負(fù)載方式網(wǎng)絡(luò)中的每臺(tái)設(shè)備都有一個(gè)唯一的網(wǎng)絡(luò)標(biāo)識(shí),這個(gè)地址叫MAC地址或網(wǎng)卡地址。數(shù)據(jù)鏈路層負(fù)載均衡是在數(shù)據(jù)鏈路層修改MAC地址進(jìn)行負(fù)載均衡。1.3負(fù)載均衡1.3.3負(fù)載均衡的主要方式5.鏈路層負(fù)載方式負(fù)載均衡服務(wù)器的IP和它所管理的web服務(wù)集群的虛擬IP一致;負(fù)載均衡數(shù)據(jù)分發(fā)過程中不修改訪問地址的IP地址,而是修改MAC地址;通過這兩點(diǎn)達(dá)到不修改數(shù)據(jù)包的原地址和目標(biāo)地址就可以進(jìn)行正常的訪問。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法醫(yī)院的掛號(hào)機(jī)為看診的患者進(jìn)行排號(hào),便于不同患者的需求盡快得到處理。掛號(hào)機(jī)內(nèi)部設(shè)有一定的處理機(jī)制進(jìn)行業(yè)務(wù)窗口的排序及分配,這種用系統(tǒng)的方法描述解決問題的策略機(jī)制就叫做算法。不管網(wǎng)站采取哪種模式做負(fù)載均衡,都需要設(shè)定算法指定調(diào)度策略。負(fù)載均衡算法主要分為靜態(tài)和動(dòng)態(tài)兩類。靜態(tài)負(fù)載均衡算法以固定的順序分配任務(wù),不考慮服務(wù)器的實(shí)時(shí)狀態(tài),如輪詢法、加權(quán)輪詢法等;動(dòng)態(tài)負(fù)載均衡算法以服務(wù)器的實(shí)時(shí)負(fù)載狀態(tài)信息分配任務(wù),如最小連接法、加權(quán)最小連接法等。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法輪詢法加權(quán)輪詢法目標(biāo)地址哈希法源地址哈希法1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法輪詢法輪詢調(diào)度算法(RoundRobinScheduling,RR),調(diào)度器采用這種算法時(shí),會(huì)將用戶請(qǐng)求無差別地按順序輪流分配到集群中的真實(shí)服務(wù)器上,不關(guān)心每個(gè)服務(wù)器上實(shí)際的連接數(shù)和當(dāng)前系統(tǒng)負(fù)載信息。假設(shè)現(xiàn)在后端有4臺(tái)真實(shí)服務(wù)器,前端負(fù)載均衡器收到9個(gè)用戶請(qǐng)求,暫時(shí)將這9個(gè)請(qǐng)求依次用1、2、3、4、5、6、7、8、9表示。若負(fù)載均衡器采用輪詢法進(jìn)行任務(wù)的分配,這9個(gè)請(qǐng)求是什么分配結(jié)果呢?1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法第一個(gè)用戶請(qǐng)求將被分配給真實(shí)服務(wù)器1號(hào)機(jī)進(jìn)行處理,第二個(gè)用戶請(qǐng)求將被分配給真實(shí)服務(wù)器2號(hào)機(jī)進(jìn)行處理,依此類推。當(dāng)4臺(tái)服務(wù)器分配完畢時(shí),第5個(gè)請(qǐng)求又將被分配給1號(hào)機(jī)進(jìn)行處理。只要真實(shí)服務(wù)器的數(shù)量固定,每臺(tái)機(jī)器處理的請(qǐng)求序號(hào)也是固定的。輪詢法1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法加權(quán)輪詢法加權(quán)輪詢調(diào)度算法(WeightedRoundRobinScheduling,WRR),調(diào)度器采用這種算法時(shí),會(huì)將用戶請(qǐng)求按照真實(shí)服務(wù)器不同的處理能力進(jìn)行分配。給配置高、負(fù)載低的機(jī)器配置更高的權(quán)重,讓其處理更多的請(qǐng)求;而配置低、負(fù)載高的機(jī)器,給其分配較低的權(quán)重,降低其系統(tǒng)負(fù)載。按照權(quán)重進(jìn)行任務(wù)的調(diào)度,可以保證請(qǐng)求分配的合理性。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法加權(quán)輪詢法若負(fù)載均衡器采用加權(quán)輪詢法進(jìn)行任務(wù)的分配,首先會(huì)在內(nèi)部生成一個(gè)服務(wù)器序列。每當(dāng)收到請(qǐng)求時(shí),就依次從該序列中取出一個(gè)服務(wù)器用于處理用戶請(qǐng)求。比如現(xiàn)在有三臺(tái)真實(shí)服務(wù)器A、B、C,它們的處理能力分別為2,1,3,加權(quán)輪詢算法會(huì)生成序列{A,A,B,C,C,C}。這樣,每收到6個(gè)客戶端的請(qǐng)求,服務(wù)器會(huì)把其中的1個(gè)請(qǐng)求轉(zhuǎn)發(fā)給后端的B,把其中的2個(gè)請(qǐng)求轉(zhuǎn)發(fā)給后端的A,把其中的3個(gè)請(qǐng)求轉(zhuǎn)發(fā)給后端C。收到的第7個(gè)請(qǐng)求,重新從該序列的頭部開始輪詢。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法加權(quán)輪詢法總的來說,加權(quán)輪詢算法要生成一個(gè)服務(wù)器序列,該序列含N個(gè)服務(wù)器。N是所有真實(shí)服務(wù)器的權(quán)重之和。在這個(gè)序列中,將服務(wù)器的處理能力以一定的維度進(jìn)行衡量,每個(gè)服務(wù)器的能力用數(shù)字量化為其權(quán)重值。同時(shí)在生成的序列中,服務(wù)器的分配應(yīng)該盡可能地均勻。比如序列{A,A,B,C,C,C}中,前2個(gè)請(qǐng)求都會(huì)分配給服務(wù)器A,這是一種不均勻的分配方法,更好的序列應(yīng)該是:{C,A,B,C,A,C}。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法目標(biāo)地址哈希法目標(biāo)地址哈希法(DestinationHashingScheduling,DH)是一種靜態(tài)映射算法,通過一個(gè)散列(Hash)函數(shù)將一個(gè)目標(biāo)IP地址映射到一臺(tái)服務(wù)器。服務(wù)器首先將用戶請(qǐng)求的目標(biāo)IP地址作為散列鍵(HashKey),再從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,如果該服務(wù)器是可用的且未超載,就將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法源地址哈希法源地址哈希法(SourceHashingScheduling,SH)也是一種靜態(tài)映射算法,通過一個(gè)散列(Hash)函數(shù)將一個(gè)源地址IP地址映射到一臺(tái)服務(wù)器。服務(wù)器首先將用戶請(qǐng)求的源IP地址(即客戶端地址)作為散列鍵(HashKey),再從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,如果該服務(wù)器是可用的且未超載,就將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。采用源地址哈希法進(jìn)行負(fù)載均衡,源地址一樣的請(qǐng)求都會(huì)被分配到同一臺(tái)服務(wù)器進(jìn)行處理,可以實(shí)現(xiàn)會(huì)話的粘滯性。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法源地址哈希法假設(shè)現(xiàn)在有A、B、C、D四臺(tái)真實(shí)服務(wù)器,隨機(jī)抽取之前處理過的9個(gè)請(qǐng)求,以序號(hào)1~9表示,查看實(shí)際對(duì)這9個(gè)請(qǐng)求進(jìn)行處理的服務(wù)器。服務(wù)器A:1、7服務(wù)器B:2、3、4、5服務(wù)器C:9服務(wù)器D:6、8若該服務(wù)器采用的是源地址哈希法進(jìn)行負(fù)載均衡,那么再次收到這9個(gè)請(qǐng)求源客戶端的請(qǐng)求時(shí),實(shí)際處理請(qǐng)求的服務(wù)器是怎樣分配的呢?1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法采用源地址哈希法進(jìn)行負(fù)載均衡,源地址一樣的請(qǐng)求都會(huì)被分配到同一臺(tái)服務(wù)器進(jìn)行處理。但如果某個(gè)服務(wù)器出現(xiàn)故障,會(huì)導(dǎo)致這個(gè)服務(wù)器上的客戶端無法使用,無法保證高可用。當(dāng)某一用戶成為熱點(diǎn)用戶,將會(huì)有巨大的流量涌向這個(gè)服務(wù)器,導(dǎo)致負(fù)載分布不均衡,無法有效利用集群的性能。源地址哈希法1.3負(fù)載均衡1.3.4負(fù)載均衡的算法1.靜態(tài)負(fù)載均衡算法—優(yōu)缺點(diǎn)對(duì)比算法優(yōu)點(diǎn)缺點(diǎn)輪詢法簡(jiǎn)單高效,易于水平擴(kuò)展,每個(gè)服務(wù)器任務(wù)分配均衡無法保證任務(wù)分配的合理性,無法根據(jù)服務(wù)器承受能力來分配任務(wù)加權(quán)輪詢法可以將不同機(jī)器的性能問題納入考量范圍,集群性能最優(yōu)最大化服務(wù)器抗壓能力無法精確估量,靜態(tài)算法導(dǎo)致無法實(shí)時(shí)動(dòng)態(tài)調(diào)整節(jié)點(diǎn)權(quán)重,只能粗糙優(yōu)化目標(biāo)地址哈希法根據(jù)用戶訪問的URL的哈希結(jié)果,使每個(gè)URL定向到同一個(gè)后端服務(wù)器上,假如某一個(gè)目標(biāo)服務(wù)器不可以,或者負(fù)載過高,那么會(huì)影響發(fā)往該目標(biāo)服務(wù)器的請(qǐng)求無法得到響應(yīng)。源地址哈希法源地址一樣的請(qǐng)求都會(huì)被分配到同一臺(tái)服務(wù)器進(jìn)行處理,可以解決session會(huì)話共享的問題,實(shí)現(xiàn)會(huì)話粘滯1.由于用戶的活躍度不同,可能會(huì)有大量的活躍用戶被哈希到相同的服務(wù)器上,造成該服務(wù)器特別繁忙,大量的非活躍用戶被哈希到相同的服務(wù)器上,造成該服務(wù)器幾乎沒有請(qǐng)求,造成請(qǐng)求不均衡;2.一旦某個(gè)服務(wù)器掛掉,那么哈希到該服務(wù)器的所有源請(qǐng)求都會(huì)失敗,直到服務(wù)恢復(fù)或者服務(wù)器列表中去掉該服務(wù)器1.3負(fù)載均衡1.3.4負(fù)載均衡的算法2.動(dòng)態(tài)負(fù)載均衡算法最小連接數(shù)法加權(quán)最小連接數(shù)法基于局部性的最少鏈接法帶復(fù)制的基于局部性最少鏈接法1.3負(fù)載均衡1.3.4負(fù)載均衡的算法2.動(dòng)態(tài)負(fù)載均衡算法最小連接法最小連接法(LeastConnectionScheduling,LC),采用這種算法做負(fù)載均衡時(shí),調(diào)度器會(huì)根據(jù)每個(gè)真實(shí)服務(wù)器當(dāng)前的連接情況,動(dòng)態(tài)選取當(dāng)前連接數(shù)最小的服務(wù)器來處理當(dāng)前請(qǐng)求。最小連接法通過真實(shí)服務(wù)器當(dāng)前活躍的連接數(shù)來判斷真實(shí)服務(wù)器的情況,每當(dāng)真實(shí)服務(wù)器有新的連接或斷開連接時(shí)都需要進(jìn)行計(jì)數(shù),調(diào)度器根據(jù)各個(gè)真實(shí)服務(wù)器的連接數(shù)合理進(jìn)行任務(wù)的分配。在實(shí)際應(yīng)用中,同一集群的真實(shí)服務(wù)器具有相近的系統(tǒng)性能,對(duì)外提供的服務(wù)也一致,采用最小連接法可以較好地進(jìn)行負(fù)載均衡。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法2.動(dòng)態(tài)負(fù)載均衡算法最小連接法假設(shè)現(xiàn)在真實(shí)服務(wù)器組中有A、B、C、D四臺(tái)服務(wù)器,它們當(dāng)前的連接數(shù)分別是2、4、1、2,負(fù)載均衡采用的算法是最小連接法。若此時(shí)來了一個(gè)新的用戶請(qǐng)求,按照最小連接法的原則,該請(qǐng)求就會(huì)被分配至RS-C進(jìn)行處理。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法2.動(dòng)態(tài)負(fù)載均衡算法加權(quán)最小連接法加權(quán)最小連接法(WeightedLeastConnectionScheduling,WLC)在實(shí)現(xiàn)時(shí)增加了權(quán)重的計(jì)算,在LC算法的計(jì)算標(biāo)準(zhǔn)上除以權(quán)重,計(jì)算結(jié)果數(shù)值小的將接受下次訪問請(qǐng)求,是企業(yè)最常用的算法也是LVS的默認(rèn)算法。采用這種算法時(shí),調(diào)度器可以自動(dòng)問詢真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)調(diào)整其權(quán)值。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法2.動(dòng)態(tài)負(fù)載均衡算法基于局部性的最少鏈接法基于局部性的最少鏈接法(Locality-BasedLeastConnectionsScheduling,LBLC)類似目標(biāo)地址哈希法,是針對(duì)目標(biāo)IP地址的負(fù)載均衡算法,調(diào)度器根據(jù)請(qǐng)求的目標(biāo)IP地址找出最近為該目標(biāo)IP地址服務(wù)的真實(shí)服務(wù)器,若該真實(shí)服務(wù)器是可用的且沒有超載,則將請(qǐng)求發(fā)送給該真實(shí)服務(wù)器,否則調(diào)度器將使用“最小連接”原則選出一個(gè)可用的真實(shí)服務(wù)器并將請(qǐng)求發(fā)送到該服務(wù)器,這種算法主要用于Cache集群系統(tǒng)。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法2.動(dòng)態(tài)負(fù)載均衡算法帶復(fù)制的基于局部性最少鏈接法帶復(fù)制的基于局部性最少鏈接法(Locality-BasedLeastConnectionswithReplicationScheduling,LBLCR)也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,它與LBLC算法的不同之處是它維護(hù)的是從一個(gè)目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護(hù)的是從一個(gè)目標(biāo)IP地址到一臺(tái)服務(wù)器的映射。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法2.動(dòng)態(tài)負(fù)載均衡算法帶復(fù)制的基于局部性最少鏈接法該算法根據(jù)請(qǐng)求的目標(biāo)IP地址找出為該目標(biāo)IP地址服務(wù)的真實(shí)服務(wù)器組,按“最小連接”原則從真實(shí)服務(wù)器組中選出一臺(tái)真實(shí)服務(wù)器。若該真實(shí)服務(wù)器沒有超載,將請(qǐng)求發(fā)送到該真實(shí)服務(wù)器,若其超載或者故障,則按“最少連接”原則從整個(gè)集群系統(tǒng)中選出一臺(tái)服務(wù)器加入到真實(shí)服務(wù)器組中,將請(qǐng)求轉(zhuǎn)發(fā)到該服務(wù)器。同時(shí),當(dāng)真正處理請(qǐng)求的服務(wù)器組有一段時(shí)間沒有被修改,調(diào)度器會(huì)將最忙的服務(wù)器從該服務(wù)器組中刪除,以降低復(fù)制程度。這種算法同樣主要用于Cache集群系統(tǒng)。1.3負(fù)載均衡1.3.4負(fù)載均衡的算法小結(jié)負(fù)載均衡算法之所以分為靜態(tài)調(diào)度算法和動(dòng)態(tài)調(diào)度算法是因?yàn)?,靜態(tài)調(diào)度算法只按照固定的算法標(biāo)準(zhǔn)計(jì)算而不考慮其他因素,如果指定的服務(wù)器不在線或已滿載,客戶端的請(qǐng)求將不會(huì)被轉(zhuǎn)發(fā);而動(dòng)態(tài)調(diào)度算法則設(shè)置了一系列的約束來動(dòng)態(tài)地分配客戶端的請(qǐng)求,除非所有的真實(shí)服務(wù)器都不在線或滿載,否則客戶端的請(qǐng)求都將會(huì)得到轉(zhuǎn)發(fā)。這幾種算法中最常用的是輪詢法、加權(quán)輪詢法、最小連接法及加權(quán)最小連接法,其中加權(quán)最小連接法是LVS的默認(rèn)算法。在實(shí)際使用時(shí),讀者可以按需選擇合適的算法進(jìn)行負(fù)載均衡。1.4服務(wù)器健康檢查HTTP/HTTPS監(jiān)聽健康檢查機(jī)制ICMP監(jiān)聽健康檢查機(jī)制TCP監(jiān)聽健康檢查機(jī)制1.4服務(wù)器健康檢查務(wù)器的健康檢查是指負(fù)載均衡通過健康檢查判斷后端服務(wù)器是否可用。如果后端服務(wù)器異常,負(fù)載均衡將自動(dòng)把訪問請(qǐng)求轉(zhuǎn)發(fā)到其他健康的服務(wù)器上;當(dāng)異常服務(wù)器恢復(fù)正常時(shí),負(fù)載均衡會(huì)自動(dòng)將該服務(wù)器加入集群,繼續(xù)服務(wù)。1.4服務(wù)器健康檢查在七層負(fù)載均衡模式下,負(fù)載均衡器向后端轉(zhuǎn)發(fā)HTTP請(qǐng)求,健康檢查通過HTTPHEAD請(qǐng)求獲取狀態(tài)信息,后端服務(wù)器收到請(qǐng)求后,根據(jù)業(yè)務(wù)的運(yùn)行狀況,返回HTTP狀態(tài)碼。1.HTTP/HTTPS監(jiān)聽健康檢查機(jī)制1.4服務(wù)器健康檢查負(fù)載均衡器向后端服務(wù)器發(fā)送ICMPEcho包,即ping的方式,若后端服務(wù)器可以正常收到ICMPReply,那么服務(wù)器ICMO協(xié)議處理正常,即服務(wù)器是“活的”。2.ICMP監(jiān)聽健康檢查機(jī)制1.4服務(wù)器健康檢查負(fù)載均衡器向后端服務(wù)器的相應(yīng)端口發(fā)送TCP連接請(qǐng)求,如果三次握手成功建立,那么服務(wù)器TCP協(xié)議處理正常。3.TCP監(jiān)聽健康檢查機(jī)制1.4服務(wù)器健康檢查除此3種服務(wù)器健康檢測(cè)方式,還可以發(fā)送UDP、FTP、DNS、SSL等協(xié)議包通過是否收到正確的應(yīng)答來檢查服務(wù)器是否存活。服務(wù)器的健康檢測(cè)在集群系統(tǒng)中有著至關(guān)重要的作用,有利于維護(hù)系統(tǒng)的高可用。小結(jié)課后小結(jié)本章重點(diǎn)介紹了集群的核心概念和特點(diǎn)、3類集群及相關(guān)軟硬件,詳細(xì)介紹了負(fù)載均衡相關(guān)內(nèi)容,包括負(fù)載均衡的分類、四層和七層負(fù)載均衡的區(qū)別、負(fù)載均衡的主要方式以及負(fù)載均衡的算法,還講解了服務(wù)器的健康檢測(cè)。希望讀者仔細(xì)閱讀本章內(nèi)容,結(jié)合結(jié)構(gòu)圖掌握集群的相關(guān)概念,為接下來的學(xué)習(xí)打好基礎(chǔ)。第2章Web服務(wù)集群2.1Web服務(wù)集群簡(jiǎn)介

2.2

搭建LAMP平臺(tái)2.3

搭建LNMP平臺(tái)2.4Nginx—負(fù)載均衡2.5Web集群實(shí)戰(zhàn)案例-業(yè)務(wù)上線了解Web服務(wù)集群的意義熟練搭建LAMP平臺(tái)熟練搭建LNMP平臺(tái)熟悉Nginx負(fù)載均衡熟練搭建Web服務(wù)集群引言大家所熟悉的博客、論壇等網(wǎng)站,其特點(diǎn)就是用戶群體較大。當(dāng)Web服務(wù)器直接面向客戶端時(shí),服務(wù)器往往要承載大量并發(fā)請(qǐng)求,單臺(tái)服務(wù)器難以負(fù)荷。為了應(yīng)對(duì)以上問題,可以配置多臺(tái)Web服務(wù)器組成集群,以擴(kuò)展架構(gòu)的穩(wěn)定性和可擴(kuò)展性,承載更多的并發(fā)量以及提高用戶的訪問速度。2.1Web服務(wù)集群簡(jiǎn)介組成及概念Web集群基礎(chǔ)架構(gòu)2.1Web服務(wù)集群簡(jiǎn)介Web服務(wù)集群是指配置若干(兩臺(tái)及以上)臺(tái)Web服務(wù)器組成一個(gè)系統(tǒng),作為一個(gè)整體為用戶提供Web服務(wù)。在Web集群環(huán)境中,前端使用負(fù)載均衡,將用戶請(qǐng)求的流量按照算法分散地移交到后端Web服務(wù)器集群中,實(shí)現(xiàn)請(qǐng)求的分發(fā),將會(huì)大大提升系統(tǒng)的吞吐量與請(qǐng)求性能。2.1Web服務(wù)集群簡(jiǎn)介Web服務(wù)器又稱為網(wǎng)站服務(wù)器,能夠處理瀏覽器等客戶端的請(qǐng)求然后返回相應(yīng)結(jié)果,Web服務(wù)器可提供瀏覽類網(wǎng)站文件,又可提供下載類數(shù)據(jù)文件。常見的Web服務(wù)器協(xié)議有HTTP、HTML文檔格式、URL(UniformResourceLocator,統(tǒng)一資源定位符)等,其中URL就是用戶在瀏覽器中輸入的網(wǎng)站地址。2.1Web服務(wù)集群簡(jiǎn)介當(dāng)前主流的Web服務(wù)器有Apache、Nginx、IIS,在云端Web類應(yīng)用中,使用率可達(dá)95%以上。Apache是世界使用最多的Web服務(wù)器,是Web服務(wù)器的“領(lǐng)頭人”,同時(shí),Nginx性能穩(wěn)定,有著代替Apache的趨勢(shì),這兩者在Linux系統(tǒng)下都能被靈活地配置調(diào)用,而IIS主要用于Windows的Web類應(yīng)用。Web服務(wù)器的市場(chǎng)份額2.1Web服務(wù)集群簡(jiǎn)介假設(shè)用戶A通過負(fù)載均衡登錄網(wǎng)站,第一次登錄的會(huì)話信息保存在Web服務(wù)器1中,保存的內(nèi)容叫做Session,可以保證用戶“在線”的狀態(tài)。當(dāng)網(wǎng)站刷新,負(fù)載均衡把請(qǐng)求又分給了Web2,因?yàn)閃eb2沒有用戶A的登錄信息,網(wǎng)站就會(huì)提示用戶A重新登錄,以此類推,用戶A無法實(shí)現(xiàn)會(huì)話保持。實(shí)現(xiàn)Session共享就可以解決以上問題,如Nginx負(fù)載均衡的ip_hash算法、LVS的持久連接機(jī)制、HAProxy負(fù)載均衡的source算法以及基于cookie的會(huì)話保持處理機(jī)制。Web集群基礎(chǔ)架構(gòu)2.2搭建LAMP平臺(tái)LAMP簡(jiǎn)介實(shí)驗(yàn)的準(zhǔn)備環(huán)境LAMP的部署及測(cè)試2.2

搭建LAMP

平臺(tái)2.2.1LAMP簡(jiǎn)介在LAMP中,Linux是自由和開放源碼的類Unix操作系統(tǒng),可安裝在各種計(jì)算機(jī)硬件設(shè)備中。Apache是最受歡迎的一個(gè)開放源碼的Web服務(wù)器軟件,強(qiáng)大且實(shí)用。M可以是多線程、多用戶的SQL數(shù)據(jù)庫管理系統(tǒng)MySQL,也可以是MariaDB。P一般是指PHP、Perl或Python等腳本語言,其中PHP是一種編程語言,最初用來設(shè)計(jì)生產(chǎn)動(dòng)態(tài)網(wǎng)站,主要用于服務(wù)器端的應(yīng)用程序軟件。LAMP可以是LinuxApacheMySQLPHP的簡(jiǎn)寫,其實(shí)就是把Apache、MySQL以及PHP安裝在Linux系統(tǒng)上,來運(yùn)行動(dòng)態(tài)網(wǎng)站或者服務(wù)器,是比較常用的Web搭建框架。2.2

搭建LAMP

平臺(tái)2.2.1LAMP簡(jiǎn)介L(zhǎng)AMP的工作原理2.2

搭建LAMP

平臺(tái)2.2.1LAMP簡(jiǎn)介瀏覽器向服務(wù)器發(fā)送HTTP請(qǐng)求,服務(wù)器(Apache)接受請(qǐng)求。PHP作為Apache的組件模塊也會(huì)一起啟動(dòng),它們具有相同的生命周期。Apache會(huì)將一些靜態(tài)資源保存,然后去調(diào)用PHP處理模塊進(jìn)行PHP腳本的處理。腳本處理完后,Apache將處理完的信息通過httpresponse的方式發(fā)送給瀏覽器,經(jīng)瀏覽器解析、渲染等一系列操作后呈現(xiàn)整個(gè)網(wǎng)頁。LAMP的工作原理2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境本書全部實(shí)驗(yàn)使用虛擬機(jī)代替物理服務(wù)器,在虛擬環(huán)境下的Linux操作系統(tǒng)中進(jìn)行,實(shí)驗(yàn)所用操作系統(tǒng)版本為CentOS7.6。CentOS7自帶Firewalld和SELinux守護(hù)工具,一外一內(nèi),保證系統(tǒng)的安全。嚴(yán)格意義上來說,可以通過配置相關(guān)策略來開放系統(tǒng)及服務(wù)的訪問權(quán)限,這種做法雖然較準(zhǔn)確但是繁瑣。為了避免因防火墻造成各種連接不成功以至于實(shí)驗(yàn)失敗的情況,這里直接關(guān)閉Firewalld和SELinux,后續(xù)章節(jié)的實(shí)驗(yàn)也默認(rèn)關(guān)閉。2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境1.查看系統(tǒng)版本號(hào)[root@qfedu~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境2.關(guān)閉CentOS7默認(rèn)防火墻Firewalld[root@qfedu~]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;enabled;vendorpreset:enabled)Active:active(running)since一2021-10-2518:05:27CST;7hleft……此處省略部分代碼……(1)首先查看虛擬機(jī)當(dāng)前防火墻的狀態(tài)2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境2.關(guān)閉CentOS7默認(rèn)防火墻Firewalld通過上面這段代碼的反饋信息,可以觀察到防火墻目前是開啟的。輸出結(jié)果第2行括號(hào)中的第二個(gè)字段表示的是服務(wù)的自啟動(dòng)狀態(tài),若為enabled,則說明該服務(wù)會(huì)開機(jī)自啟動(dòng);若為disabled,則開機(jī)不會(huì)自啟。第3行active表示的是活動(dòng),其冒號(hào)后面若為active(running),則表示防火墻為啟動(dòng)狀態(tài);若為inactive(dead),則說明當(dāng)前防火墻為關(guān)閉狀態(tài)。(1)首先查看虛擬機(jī)當(dāng)前防火墻的狀態(tài)2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境2.關(guān)閉CentOS7默認(rèn)防火墻Firewalld[[root@qfedu~]#systemctlstopfirewalld[root@qfedu~]#systemctldisablefirewalld(2)關(guān)閉防火墻,并禁止其開機(jī)自啟2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境2.關(guān)閉CentOS7默認(rèn)防火墻Firewalld[root@qfedu~]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;disabled;vendorpreset:enabled)Active:inactive(dead)……此處省略部分代碼……(3)再次查看防火墻狀態(tài)當(dāng)前防火墻的狀態(tài)為關(guān)閉2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境3.關(guān)閉SELinux[root@qfedu~]#getenforceEnforcing(1)首先查看當(dāng)前SELinux的狀態(tài)系統(tǒng)返回的信息為Enforcing,意為執(zhí)行,即SELinux正在運(yùn)行2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境3.關(guān)閉SELinux[root@qfedu~]#setenforce0[root@qfedu~]#getenforcePermissive(2)臨時(shí)關(guān)閉SELinux,并再次查看SELinux的狀態(tài)SELinux的狀態(tài)為Permissive,意為允許的2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境3.關(guān)閉SELinux[root@qfedu~]#vim/etc/selinux/config#ThisfilecontrolsthestateofSELinuxonthesystem.#SELINUX=cantakeoneofthesethreevalues:#enforcing-SELinuxsecuritypolicyisenforced.#permissive-SELinuxprintswarningsinsteadofenforcing.#disabled-NoSELinuxpolicyisloaded.#SELINUX=enforcing#修改前SELINUX=disabled#修改后(3)禁止SELinux開機(jī)自啟將SELINUX=enforcing修改為SELINUX=disabled2.2

搭建LAMP

平臺(tái)2.2.2實(shí)驗(yàn)的準(zhǔn)備環(huán)境3.關(guān)閉SELinux[root@qfedu~]#reboot[root@qfedu~]#getenforceDisabled(4)重啟虛擬機(jī),再次查看SELinux狀態(tài)SELinux的狀態(tài)為Disabled,說明SELinux已關(guān)閉,并被禁止開機(jī)自啟。至此,準(zhǔn)備工作已全部完成,本書后續(xù)實(shí)驗(yàn)將不再詳細(xì)介紹該環(huán)節(jié)。2.2

搭建LAMP

平臺(tái)2.2.3LAMP的部署及測(cè)試在單機(jī)環(huán)境下部署LAMP環(huán)境,首先關(guān)閉防火墻及SELinux,之后利用yum工具依次安裝Apache、PHP和MySQL,并進(jìn)行測(cè)試。準(zhǔn)備1臺(tái)VM虛擬機(jī)搭建LAMP平臺(tái)HostNameIP說明web139搭建LAMP框架說明:操作系統(tǒng)版本CentOS7.6,提前關(guān)閉防火墻及SELinux。2.2

搭建LAMP

平臺(tái)2.2.3LAMP的部署及測(cè)試1.Apache的安裝與測(cè)試[root@web1~]#yum-yinstallhttpd……此處省略部分代碼……已安裝:httpd.x86_640:2.4.6-97.el7.centos.2作為依賴被安裝:apr.x86_640:1.4.8-7.el7apr-util.x86_640:1.5.2-6.el7httpd-tools.x86_640:2.4.6-97.el7.centos.2mailcap.noarch0:2.1.41-2.el7完畢?。?)安裝Apache2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試1.Apache的安裝與測(cè)試[root@web1~]#httpd-vServerversion:Apache/2.4.6(CentOS)Serverbuilt:Nov10202114:41:18本次實(shí)驗(yàn)的Apache版本為2.4.6(1)安裝Apache2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試1.Apache的安裝與測(cè)試[root@web1~]#systemctlstarthttpd[root@web1~]#systemctlenablehttpdCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/httpd.serviceto/usr/lib/systemd/system/httpd.service.(3)啟動(dòng)Apache服務(wù)并設(shè)置開機(jī)自啟2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試1.Apache的安裝與測(cè)試在本機(jī)瀏覽器中輸入虛擬機(jī)的IP地址,如果看到Apache默認(rèn)的測(cè)試頁面,說明Apache服務(wù)成功運(yùn)行。直接在瀏覽器上訪問當(dāng)前主機(jī)的IP地址。(4)驗(yàn)證Apache服務(wù)是否安裝成功2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試1.Apache的安裝與測(cè)試Apache的默認(rèn)網(wǎng)站目錄是/var/www/html,先切換到該路徑,再創(chuàng)建HTML靜態(tài)頁面。(5)測(cè)試Apache是否能解析常見的靜態(tài)頁面[root@web1~]#cd/var/www/html/[root@web1html]#vimindex.htmlWelcometotheworld!2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試1.Apache的安裝與測(cè)試在瀏覽器中輸入IP地址。(5)測(cè)試Apache是否能解析常見的靜態(tài)頁面靜態(tài)頁面被成功解析,訪問正常2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試1.Apache的安裝與測(cè)試對(duì)動(dòng)態(tài)頁面進(jìn)行測(cè)試,這里選用的是動(dòng)態(tài)語言中最常用的PHP語言作為測(cè)試對(duì)象。在網(wǎng)站根目錄編寫一個(gè)PHP文件:(5)測(cè)試Apache是否能解析常見的動(dòng)態(tài)頁面[root@web1html]#vimindex.php<?phpphpinfo();?>2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試1.Apache的安裝與測(cè)試在瀏覽器中訪問39/index.php(5)測(cè)試Apache是否能解析常見的動(dòng)態(tài)頁面服務(wù)器僅僅把index.php當(dāng)作正常的靜態(tài)語言原封不動(dòng)地進(jìn)行輸出,并沒有對(duì)PHP語言進(jìn)行解釋,這是因?yàn)锳pache本身并不能識(shí)別PHP語言。如果想達(dá)到預(yù)期效果,服務(wù)器需要先借助PHP軟件進(jìn)行翻譯,再根據(jù)翻譯后的含義進(jìn)行相關(guān)操作。2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試2.PHP的安裝與測(cè)試[root@web1html]#yum-yinstallphp……此處省略部分代碼……已安裝:php.x86_640:5.4.16-48.el7作為依賴被安裝:libzip.x86_640:0.10.1-8.el7php-cli.x86_640:5.4.16-48.el7php-common.x86_640:5.4.16-48.el7完畢?。?)安裝PHP2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試2.PHP的安裝與測(cè)試[root@web1html]#systemctlrestarthttpd(2)重啟Apache服務(wù)2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試2.PHP的安裝與測(cè)試安裝PHP之后,Apache可以實(shí)現(xiàn)對(duì)動(dòng)態(tài)頁面的正常訪問。需要注意的是安裝PHP之后,需要重啟Apache,才能實(shí)現(xiàn)Apache與PHP的連接。(3)再次訪問index.php2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試[root@web1~]#yum-yinstallmariadbmariadb-server……此處省略部分代碼……已安裝:

mariadb.x86_641:5.5.64-1.el7mariadb-server.x86_641:5.5.64-1.el7作為依賴被安裝:perl-Compress-Raw-Bzip2.x86_640:2.061-3.el7perl-Compress-Raw-Zlib.x86_641:2.061-4.el7perl-DBD-MySQL.x86_640:4.023-6.el7perl-DBI.x86_640:1.627-4.el7(1)安裝MariaDB客戶端與服務(wù)端perl-Data-Dumper.x86_640:2.145-3.el7perl-IO-Compress.noarch0:2.061-2.el7perl-Net-Daemon.noarch0:0.48-5.el7perl-PlRPC.noarch0:0.2020-14.el7作為依賴被升級(jí):mariadb-libs.x86_641:5.5.68-1.el7完畢!2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(1)安裝MariaDB客戶端與服務(wù)端啟動(dòng)MariaDB服務(wù),并設(shè)置其開機(jī)自啟[root@web1~]#systemctlstartmariadb[root@web1~]#systemctlenablemariadb2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(2)更改數(shù)據(jù)庫密碼首先,通過如下指令進(jìn)入數(shù)據(jù)庫安全設(shè)置模式。[root@web1~]#mysql_secure_installation2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(2)更改數(shù)據(jù)庫密碼然后,對(duì)數(shù)據(jù)庫密碼進(jìn)行修改。這里設(shè)置的用戶名默認(rèn)為root,密碼為123。[root@web1~]#mysql_secure_installation……此處省略部分代碼……Entercurrentpasswordforroot(enterfornone):#回車OK,successfullyusedpassword,movingon...SettingtherootpasswordensuresthatnobodycanlogintotheMariaDBrootuserwithouttheproperauthorisation.Setrootpassword?[Y/n]YNewpassword:123Re-enternewpassword:123Passwordupdatedsuccessfully!Reloadingprivilegetables.....Success!……此處省略部分代碼……Cleaningup...Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(3)登錄數(shù)據(jù)庫測(cè)試[root@web1~]#mysql-uroot-p123WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis11Serverversion:5.5.64-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>\qBye2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(4)測(cè)試PHP與數(shù)據(jù)庫是否連通首先在網(wǎng)站根目錄下創(chuàng)建linktest.php,設(shè)定之前設(shè)置的數(shù)據(jù)庫賬戶及密碼,若能通過該賬戶密碼正常連接數(shù)據(jù)庫,則返回Successfully,否則返回Fail。[root@web1~]#vim/var/www/html/linktest.php<?php$link=mysql_connect('localhost','root','123');if($link)echo"Successfully";elseecho"Fail";mysql_close();?>2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(4)測(cè)試PHP與數(shù)據(jù)庫是否連通在瀏覽器上訪問linktest.php服務(wù)器目前無法處理這個(gè)請(qǐng)求。雖然已經(jīng)安裝了數(shù)據(jù)庫,但是并沒有將數(shù)據(jù)庫與網(wǎng)站服務(wù)連接起來,缺少PHP與數(shù)據(jù)庫連接的插件。2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(5)查看PHP的拓展模塊[root@web1~]#php-m|grepmysql2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(6)安裝php-mysql[root@web1~]#yum-yinstallphp-mysql……此處省略部分代碼……已安裝:php-mysql.x86_640:5.4.16-48.el7作為依賴被安裝:php-pdo.x86_640:5.4.16-48.el7完畢!2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(7)再次查看PHP的拓展模塊[root@web1~]#php-m|grepmysqlmysqlmysqlipdo_mysql2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(8)重啟Apache服務(wù)[root@web1~]#systemctlrestarthttpd2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試3.?dāng)?shù)據(jù)庫的安裝與測(cè)試(9)再次在瀏覽器上訪問linktest.php改動(dòng)linktest.php中的賬戶或密碼,這里將root改為rooot,再次訪問linktest.php2.2搭建LAMP平臺(tái)2.2.3LAMP的部署及測(cè)試由此可知,在Apache上運(yùn)行一個(gè)網(wǎng)站是非常簡(jiǎn)單的,只要將源碼放入網(wǎng)站根目錄即可。隨著業(yè)務(wù)的發(fā)展,越來越多的公司選擇使用Java語言來開發(fā)應(yīng)用。能夠發(fā)布JavaWeb程序的服務(wù)器需要支持Servlet和Jsp規(guī)范,常見的有Tomcat服務(wù)器、Resin服務(wù)器、JBoss服務(wù)器、WebLogic服務(wù)器等。其中Tomcat服務(wù)器性能穩(wěn)定且開源免費(fèi),易被初學(xué)者掌握,因此,讀者在課余時(shí)間可以學(xué)習(xí)Tomcat服務(wù)器的相關(guān)內(nèi)容。2.3搭建LNMP平臺(tái)LNMP簡(jiǎn)介L(zhǎng)NMP的部署及測(cè)試2.3

搭建LNMP平臺(tái)2.3.1

LNMP簡(jiǎn)介L(zhǎng)AMP是LinuxNginxMySQLPHP的簡(jiǎn)寫,即把Nginx、MySQL以及PHP安裝在Linux系統(tǒng)上,組成一個(gè)高效、免費(fèi)、高擴(kuò)展的網(wǎng)站服務(wù)系統(tǒng),是國內(nèi)大中型互聯(lián)網(wǎng)公司網(wǎng)站常用的Web搭建框架。LAMP中是以Apache作為Web服務(wù)器與客戶端瀏覽器進(jìn)行交互,顧名思義,在LNMP環(huán)境中,是以Nginx作為Web服務(wù)器。Nginx(enginex)是一款高性能、輕量級(jí)的Web服務(wù)器,是一款反向代理服務(wù)器,也是一款郵箱代理服務(wù)器(IMAP/POP3/SMTP),具有性能優(yōu)越、功能豐富、占有內(nèi)存少等優(yōu)點(diǎn)。Nginx既適用于靜態(tài)業(yè)務(wù)又適用于動(dòng)態(tài)業(yè)務(wù),國內(nèi)的百度、淘寶、阿里、小米等知名網(wǎng)站都在使用Nginx來滿足其高并發(fā)業(yè)務(wù)的需求,已經(jīng)開始逐漸代替Apache。2.3

搭建LNMP平臺(tái)2.3.1

LNMP簡(jiǎn)介L(zhǎng)NMP的工作原理如圖所示。瀏覽器發(fā)送請(qǐng)求到服務(wù)器(Nginx),服務(wù)器響應(yīng)并處理Web請(qǐng)求。如果是靜態(tài)文本直接返回,否則將腳本(PHP)通過接口傳輸協(xié)議(網(wǎng)關(guān)協(xié)議)PHP-FCGI(fast-cgi,快速通用網(wǎng)關(guān)接口)傳輸給PHP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論