版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章集群基礎知識1.1集群簡介1.2
集群的分類1.3
負載均衡1.4服務器健康檢查第1章-集群基礎知識.pptx第2章-Web服務集群.pptx第3章-數(shù)據(jù)庫集群.pptx第4章-NFS存儲集群.pptx第5章-Keepalived高可用集群方案.pptx第6章-LVS4層負載集群.pptx第7章-HAProxy7層負載集群.pptx第8章-大型網(wǎng)站集群架構項目1.pptx第9章-大型網(wǎng)站集群架構項目2.pptx全套可編輯PPT課件熟悉集群的核心概念熟悉集群的分類及常用軟件熟悉四層和七層負載均衡的技術原理熟悉負載均衡的主要方式了解服務器健康檢測163引言說到集群,講一個例子幫助讀者理解其概念。原先的飯店只有一個廚師,負責洗菜、切菜、備料、炒菜,飯店正常運行,后來客人多了,一個廚師滿足不了上菜需求,于是老板又招了廚師,兩個廚師可以炒出同樣的菜,兩個廚師就是集群。隨著飯店規(guī)模和客流量的增多,還可以繼續(xù)招廚師,這些廚師就是一個集群。1.1集群簡介集群的核心概念集群的特點1.1集群簡介1.1.1集群的核心概念單機結構是指所有應用或服務部署到一臺服務器上??上攵?,當業(yè)務不斷擴大,而單機的處理能力有限,這時單機的硬件資源無法滿足業(yè)務需求。集群(Cluster)是指部署相同應用或服務的一組(多臺)服務器組成一個并行或者分布式系統(tǒng),作為一個整體向用戶提供網(wǎng)絡資源。組成集群的單個服務器為一個節(jié)點(Node),這些節(jié)點可以相互通信,協(xié)同為用戶提供相同的資源,一個節(jié)點的宕機并不影響其他節(jié)點的運行和用戶使用。每個節(jié)點就像是單機的“分身術”,其處理能力隨之成倍提升。1.1集群簡介1.1.1集群的核心概念負載均衡(LoadBalance,LB)是指將負載(工作任務)分攤給到多個服務器上進行執(zhí)行,如Web服務器、企業(yè)核心應用服務器、FTP服務器等,協(xié)同處理工作任務。當大量用戶請求集群系統(tǒng)時,通過負載均衡器使得每個節(jié)點的負載情況比較平均,從而達到集群節(jié)點分擔流量的作用。高可用(HighAvailability,HA)是指保持服務的高可用性,即保證一個系統(tǒng)不會因一臺服務器發(fā)生故障或宕機而導致服務停止。如果某個節(jié)點服務器故障,負載均衡器則會將請求轉移到其他節(jié)點上,實現(xiàn)冗余接管,這就是系統(tǒng)的高可用。對于商用網(wǎng)站,這也就要求即使是訪問量小的服務或應用,也需要部署兩臺服務器做集群。1.1集群簡介1.1.1集群的核心概念集群結構常常與分布式結構協(xié)同合作,相輔相成。前言中講到,兩個廚師一起洗菜、切菜、備料、炒菜,做著同樣的工作,構成集群。老板為了使廚師專心炒菜,又招了2名配菜師,負責洗菜、切菜和備料,兩名配菜師又構成一個集群,而配菜師與廚師的關系則為分布式結構。由此理解分布式結構是指將同一業(yè)務模塊分為多個(兩個以上)子任務,部署到多個服務器上,即不同的業(yè)務模塊部署到不同的服務器上。1.1集群簡介1.1.1集群的核心概念分布式與集群的區(qū)別如下。(1)集群指的是將幾臺服務器集中在一起,實現(xiàn)同一業(yè)務。分布式是指將不同的業(yè)務模塊部署到在不同的服務器。(2)集群并不一定就是分布式的,而分布式的每一個節(jié)點,都可以做集群。集群具有一定組織性,一臺服務器宕了,其他的服務器繼續(xù)提供服務。分布式的每一個節(jié)點完成不同的業(yè)務,一個節(jié)點宕了,這個業(yè)務就不可訪問了。1.1集群簡介1.1.2集群的特點1.高可用性和容錯性集群架構中的某臺服務器因故障宕機,系統(tǒng)通過進程遷移到其他可用的節(jié)點繼續(xù)提供服務,大大提高了系統(tǒng)的可用性和可靠性,有效地減少業(yè)務的損失,極大地滿足了互聯(lián)網(wǎng)企業(yè)7*24小時提供服務的要求。1.1集群簡介1.1.2集群的特點2.高性能到目前為止,即使是大型計算機,計算能力也是有限的,比如計算高分子材料分析、天氣預報、飛行器數(shù)字模擬等密集型應用,其計算時間可能會很長。大家所熟悉的百度、淘寶、谷歌等大型網(wǎng)站,一天的訪問量達上百億,也絕不是一臺或幾臺大型機就可以構建的。集群便可以很好地處理這些復雜的業(yè)務,將上萬臺服務器構成高性能集群,在并發(fā)或總請求量很高時,集群就顯示出超強的運算處理能力。1.1集群簡介1.1.2集群的特點3.可擴展性例如,銀行處理業(yè)務的柜臺一般都有多個,如果只設置2個柜臺,當客戶達到上百人時,那么辦理業(yè)務的柜臺壓力增長,滿足不了客戶的需求。這時就需要多加幾個柜臺,從而提高處理業(yè)務的效率。在集群系統(tǒng)中,當服務負載和壓力增長時,只需要將新的服務器加入現(xiàn)有集群架構中,就可以實現(xiàn)系統(tǒng)的擴展和升級。而在用戶訪問角度,幾乎不會感覺到變化。1.1集群簡介1.1.2集群的特點4.成本相對較低一臺超級計算機的價格在上百美元,而一套較好的集群設備,包括軟硬件的開銷超過10萬美元,相對便宜不少。在獲得同樣性能的情況下,集群系統(tǒng)具有更高的性價比。5.負載均衡負載均衡可以把工作任務比較均勻的分攤給集群環(huán)境下的各個節(jié)點,有效地提高數(shù)據(jù)的吞吐量。1.2集群的分類負載均衡集群高可用集群高性能計算集群1.2集群的分類1.2.1負載均衡集群負載均衡集群是指在使用一組應用程序為大量客戶提供服務時,通過若干前端負載均衡器將客戶請求分發(fā)到后端應用集群服務器的技術,各個節(jié)點的訪問請求被動態(tài)分配,達到整個系統(tǒng)的高可用和高性能。在企業(yè)中,負載均衡集群以提高服務的并發(fā)處理能力為重點,在系統(tǒng)架構中表現(xiàn)得更為實用、性價比更高。客戶訪問請求一般包括網(wǎng)絡流量負載和應用程序負載。例如,網(wǎng)站初期僅支持100個用戶同時在線,網(wǎng)站規(guī)模小,瀏覽量僅個位數(shù),這時單臺服務器比多個服務集群要快,用戶體驗感更好,不會感受到網(wǎng)站的卡頓。1.2集群的分類1.2.1負載均衡集群隨著網(wǎng)站規(guī)模增大,瀏覽量人數(shù)增多,當并發(fā)請求或總請求數(shù)量大于單臺服務器的負載能力時,用戶的體驗感隨著瀏覽量的增加直線下降。這時可以增加幾臺服務器同時運行這個網(wǎng)站,在服務器前搭建一個轉發(fā)器用來分發(fā)用戶的請求,使每個服務器接收的請求和負載壓力盡可能均勻,這樣每個用戶的請求都能很快被處理,用戶的體驗感得到提升。這個用來分發(fā)用戶請求的轉發(fā)器便是負載均衡,負載均衡以一種便捷、成本低廉的方式提高了網(wǎng)絡處理數(shù)據(jù)的能力。1.2集群的分類1.2.1負載均衡集群負載均衡集群的架構示意圖當客戶端的請求發(fā)送到服務端時,首先會到達目錄服務器,經(jīng)過目錄服務器的分配,這些請求才會傳遞到真實服務器進行處理。所謂的目錄服務器就是負載均衡服務器,專門用于將用戶的請求分發(fā)到不同的后端服務器,負載均衡服務器本身并不會對請求做任何處理。負載均衡集群的主要作用就是分擔訪問流量以及保持業(yè)務的連續(xù)性,實現(xiàn)負載均衡典型的開源軟件有LVS、Nginx、HAProxy等。1.2集群的分類1.2.2高可用集群高可用集群是指以盡量減少服務中斷時間為目的的集群技術,在任意一個節(jié)點失效時,該節(jié)點所分配的所有工作任務將會自動分配給其他可用節(jié)點,保證集群正常運行并提供服務,保持業(yè)務的正常運行。保證集群服務100%時間不中斷是不可能的,還要考慮計算機軟硬件的容錯性。例如重量級高配置的淘寶網(wǎng),當“雙十一”活動開始時,一下涌入大量用戶,也會出現(xiàn)訂單無法支付的情況,因此只能保證集群服務盡可能的可用,不能保證100%時間可用。1.2集群的分類1.2.2高可用集群互聯(lián)網(wǎng)中,通常使用網(wǎng)站在線時間/(在線時間+故障處理時間)來衡量服務的可用性??捎眯藻礄C時間99%一年有3天不在線99.9%一年有0.3天不在線99.99%一年有0.03天不在線99.999%一年有0.003天不在線1.2集群的分類1.2.2高可用集群高可用集群主要實現(xiàn)自動偵測(Auto-Detect)故障、自動切換/故障轉移(FailOver)和自動恢復(FailBack)。1.2集群的分類1.2.2高可用集群負載均衡高可用的架構示意圖設置兩臺目錄服務器,其中一臺正常工作,對外提供服務。另一臺當作備用,當正常工作的目錄服務器宕機,該服務器立刻頂替失效的目錄服務器進行工作。高可用集群主要是為了保證服務的高度可用性,常用的開源軟件包括Keepalived、Heartbeat等。1.2集群的分類1.2.3高性能計算集群高性能計算集群,又稱科學計算集群,是指用于計算海量數(shù)據(jù),解決復雜問題的技術。人們平時所說的超級計算機就是高性能計算集群,其內部由十至上萬個獨立處理器組成,將大任務切割為小任務分別進行處理,擁有極大的數(shù)據(jù)存儲容量和極快的數(shù)據(jù)處理速度。高性能計算集群主要由大數(shù)據(jù)工程師進行維護,故在此不做過多介紹。1.3負載均衡負載均衡的分類四層和七層負載均衡的區(qū)別負載均衡的主要方式負載均衡的算法1.3負載均衡1.3.1負載均衡的分類負載均衡按軟硬件分類,軟件有Nginx、LVS、Amoeba、HAProxy等,硬件有ROSE、安瑞科技、F5、Citrix等。軟件類的負載均衡是指在服務器相應的操作系統(tǒng)上安裝軟件來實現(xiàn)負載均衡,配置簡單,使用靈活;硬件類的負載均衡是指在服務器和外部網(wǎng)絡之間安裝的負載均衡設備,整體性能高。1.3負載均衡1.3.1負載均衡的分類OSI七層模型應用層表示層會話層傳輸層網(wǎng)絡層數(shù)據(jù)鏈路層物理層①②③④⑤⑥⑦1.3負載均衡1.3.1負載均衡的分類負載均衡器按OSI七層模型可以分為二層、三層、四層、七層。負載均衡OSI七層模型位置技術原理典型代表二層負載均衡數(shù)據(jù)鏈路層通過一個虛擬MAC地址接收請求,然后再分配到后端真實的MAC地址F5、LVSDR模式三層負載均衡網(wǎng)絡層通過一個虛擬IP地址接收請求,然后再分配到后端真實的IP地址LVSTUNNEL模式(IP隧道)四層負載均衡傳輸層通過虛擬IP+端口接收請求,然后再轉發(fā)到后端真實的服務器F5、LVSNAT、HAProxy、Nginx、SLB七層負載均衡應用層通過虛擬的URL、IP或主機名接收請求,然后再轉發(fā)到后端真實的服務器F5、LVSNAT、HAProxy、Nginx、SLBDNS
一個域名有多個A解析、智能解析萬網(wǎng)、DNSPod1.3負載均衡1.3.1負載均衡的分類表中還有除OSI七層模型外的DNS模式,在實際應用中使用DNS做負載均衡是常用的方式。負載均衡器通常被稱為四層交換機或七層交換機。四到七層負載均衡就是依據(jù)四層或七層信息向后端服務器集群轉發(fā)流量,起到負載均衡的作用。1.3負載均衡1.3.1負載均衡的分類1.四層負載均衡四層負載均衡是基于IP和端口的負載均衡,即通過發(fā)布三層的IP地址(虛擬IP)和四層的端口號,來對流量做負載均衡和分發(fā)處理,轉發(fā)到后端服務器,并且記錄該TCP或UDP協(xié)議的流量到達的服務器,下次仍由此臺服務器處理。基于四層的負載均衡可達到每秒幾十萬的處理量,效率更高。1.3負載均衡1.3.1負載均衡的分類2.七層負載均衡七層負載均衡是根據(jù)用戶請求的內容等應用層信息為其分配相對應的后端服務器,在這種模式下可以在同一端口下同時運行多個Web服務器。例如,同一個Web服務器的負載均衡,在根據(jù)VIP(虛擬IP)和80端口判斷應處理得流量的同時,還能夠根據(jù)七層的瀏覽器類別、語言、URL來決定是否進行負載均衡,如果用戶的語言為中文,則轉發(fā)至中文服務器進行處理。四層負載均衡不理解如HTTP、FTP等應用協(xié)議,而七層負載均衡能理解應用協(xié)議。基于七層的負載均衡需要完成兩次TCP連接,第一次是客戶端與負載均衡器,第二次是負載均衡器與真實服務器。1.3負載均衡1.3.1負載均衡的分類2.七層負載均衡七層負載均衡,又被稱為“內容交換”,主要面向來自客戶端的應用層內容,在負載均衡器設定的調度算法的基礎上進行流量分發(fā),即按需分發(fā)。1.3負載均衡1.3.1負載均衡的分類2.七層負載均衡例如一個網(wǎng)站,將對圖片類的請求轉發(fā)到特定的圖片服務器并可以使用緩存技術;將對文字類的請求轉發(fā)到特定的文字服務器并可以使用壓縮技術。當用戶訪問網(wǎng)站圖片時,反向代理將請求發(fā)送給圖片服務器,當用戶訪問網(wǎng)站文字類內容時,反向代理便將請求發(fā)送給儲存文字類內容的服務器。從技術原理的方面講,這種方式可以對客戶端的請求和服務器的響應進行任何意義上的修改,極大地提升了應用系統(tǒng)在網(wǎng)絡層的靈活性。很多在后臺服務器(例如Nginx、Apache等)上部署的功能可以前移到負載均衡設備上,例如客戶請求中的Header重寫,服務器響應中的關鍵字過濾或者內容插入等功能。1.3負載均衡1.3.1負載均衡的分類2.七層負載均衡負載均衡設備如果要根據(jù)真正的應用層請求內容選擇服務器,需要先代理最終處理請求的服務器與客戶端建立TCP連接(三次握手),才可以接收到客戶端發(fā)送的包含應用層內容的報文,然后再根據(jù)該報文中的特定字段以及負載均衡的調度算法,選擇處理請求的服務器。負載均衡設備在這種情況下,類似于一個代理服務器,負載均衡會與客戶端、處理請求的服務器分別建立TCP連接。所以從技術原理上來看,七層負載均衡明顯對負載均衡設備的要求更高,處理七層請求的速度也必然會低于四層。1.3負載均衡1.3.1負載均衡的分類七層負載均衡的優(yōu)勢。通過對HTTP報頭的檢查,可以檢測出HTTP4xx、5xx和6xx系列的錯誤信息,之后便可以將請求重新發(fā)送到另一臺服務器,能夠有效避免應用層故障??梢詫φ埱蟮臄?shù)據(jù)類型(如判斷數(shù)據(jù)包是圖像文件、壓縮文件或多媒體文件格式等)進行判斷,把請求分發(fā)給相應的服務器來處理,增加系統(tǒng)性能。能根據(jù)連接請求的類型進行流量分發(fā)。能夠判斷來自客戶端的請求類型是普通文本、圖像等靜態(tài)文檔請求,還是asp、cgi等動態(tài)文檔請求,把相應的請求轉發(fā)給相應的服務器來處理,提高系統(tǒng)的性能及安全性。1.3負載均衡1.3.1負載均衡的分類七層負載均衡的劣勢。七層負載均衡受到其所支持的協(xié)議(例如HTTP協(xié)議)限制的同時,也限制了它應用的廣泛性,并且檢查HTTP報頭會占用大量的系統(tǒng)資源,勢必會影響到系統(tǒng)的性能,在高并發(fā)時,負載均衡設備自身很容易成為網(wǎng)絡整體性能的瓶頸。1.3負載均衡1.3.2四層和七層
負載均衡的區(qū)別1.技術原理的區(qū)別四層負載均衡主要通過客戶端請求報文中的目標地址和端口,再根據(jù)負載均衡器選擇的轉方式,決定最終的真實服務器。1.3負載均衡1.3.2四層和七層
負載均衡的區(qū)別1.技術原理的區(qū)別七層負載均衡主要通過報文中的應用層信息,再根據(jù)負載均衡器選擇的轉發(fā)方式,決定最終的真實服務器。1.3負載均衡1.3.2四層和七層
負載均衡的區(qū)別2.應用場景的需求四層負載均衡適用于TCP應用,比如基于C/S開發(fā)的ERP等系統(tǒng)。四層負載均衡比七層處理效率高,更適用于網(wǎng)絡吞吐量和并發(fā)量高的集群,可作為多種軟件的負載均衡器。七層負載均衡使得整個網(wǎng)絡更加“智能化”,功能多,控制靈活,可根據(jù)用戶訪問內容,將訪問請求轉發(fā)到相應服務器,例如訪問圖片,負載均衡器會轉發(fā)到圖片服務器,極大地提高了應用系統(tǒng)在網(wǎng)絡層的靈活性。1.3負載均衡1.3.2四層和七層
負載均衡的區(qū)別3.安全性均衡網(wǎng)絡中常見的黑客攻擊,即黑客控制的眾多源客戶端,也叫作SYNFlood攻擊。黑客會通過虛假IP向一個目標發(fā)送SYN攻擊,發(fā)送大量報文,不斷消耗服務器的相關資源,以致于服務器拒絕服務。四層負載均衡不能夠攔截SYN攻擊,會將攻擊轉發(fā)到后端服務器上,而七層負載均衡可以攔截SYN攻擊,不會影響后端服務器。七層負載均衡還可以設定安全策略,以過濾不安全報文,進一步提高系統(tǒng)的安全性。由此可見,七層負載均衡比四層負載均衡安全性更高。1.3負載均衡1.3.3負載均衡的主要方式HTTP重定向DNS負載均衡反向代理負載均衡IP負載均衡數(shù)據(jù)鏈路層負載均衡F5硬件負載均衡1.3負載均衡1.3.3負載均衡的主要方式1.HTTP重定向HTTP重定向會根據(jù)客戶端應用層的報文計算出一個真實的Web服務器IP地址,并將該IP地址寫入HTTP重定向響應中返回給客戶端,客戶端收到重定向響應之后再去訪問真實服務器。1.3負載均衡1.3.3負載均衡的主要方式1.HTTP重定向用戶訪問例如的域名,經(jīng)DNS域名解析獲得的IP地址為00,即HTTP重定向服務器的IP地址。HTTP重定向服務器通過負載均衡算法,向客戶端響應重定向至集群中實際服務器的地址03,用戶瀏覽器再向真實地址發(fā)出訪問請求,完成訪問。1.3負載均衡1.3.3負載均衡的主要方式1.HTTP重定向這種工作方式雖然比較簡單,但客戶端需要發(fā)送多次請求才能完成一次成功的訪問,所以重定向方式實現(xiàn)的負載均衡性能較差。從另一方面講,HTTP重定向服務器自身的處理能力可能會成為瓶頸。使用HTTP302響應重定向之后,有可能被搜索引擎判斷為SEO作弊,從而降低搜索排名。1.3負載均衡1.3.3負載均衡的主要方式2.DNS方式DNS負責提供域名到IP解析的過程,這時DNS服務器也就充當了負載均衡,很多域名運營商提供的智能DNS以及多線解析都是利用了DNS負載均衡的技術,開源的Bind軟件就可提供電信聯(lián)通多線解析等強大的技術。1.3負載均衡1.3.3負載均衡的主要方式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負載均衡1.3.3負載均衡的主要方式2.DNS方式解析百度的域名百度的域名解析其實是一對多的形式。例如一個域名對應一組web服務器IP地址,域名解析時經(jīng)過DNS服務器的算法將一個域名請求分配到合適的真實服務器上。1.3負載均衡1.3.3負載均衡的主要方式2.DNS方式DNS服務器寫入多條A記錄:INA01、INA02、INA03。用戶請求域名解析,DNS服務器根據(jù)A記錄采用負載均衡算法向用戶返回真實物理服務器IP地址,用戶瀏覽器重新請求該IP地址。
DNS域名解析常作為第一級負載均衡器。1.3負載均衡1.3.3負載均衡的主要方式2.DNS方式DNS負載均衡的控制權在于域名服務商,網(wǎng)站管理者可能無法做出過多的改善和管理,且不能夠按照服務器的處理能力來分配負載。DNS負載均衡采用的是簡單的輪詢算法,不能區(qū)分服務器之間的差異,不能反映服務器當前運行狀態(tài),所以實現(xiàn)負載均衡的效果并不是很好。1.3負載均衡1.3.3負載均衡的主要方式DNS實現(xiàn)負載均衡的方式的優(yōu)缺點如下。優(yōu)點:將負載均衡的工作交給了DNS,省卻了網(wǎng)站管理維護負載均衡服務器的麻煩,同時許多DNS還支持基于地理位置的域名解析,將域名解析成距離用戶地理最近的一個服務器地址,加快訪問速度,改善性能。缺點:目前的DNS解析是多級解析,每一級DNS都可能對A記錄進行緩存,當某一服務器下線后,該服務器對應的DNS記錄A可能仍然存在,導致分配到該服務器的用戶訪問失敗。為了使本DNS服務器和其他DNS服務器及時交互,保證DNS數(shù)據(jù)及時更新,使地址能隨機分配,一般都要將DNS的刷新時間設置得較小,但太小將會使DNS流量大增造成額外的網(wǎng)絡問題。1.3負載均衡1.3.3負載均衡的主要方式3.反向代理方式反向代理部署在Web服務器前面,提供負載均衡的功能,同時管理著一組Web服務器,根據(jù)負載均衡算法將訪問請求轉發(fā)給不同的Web服務器,處理結果經(jīng)過反向代理返回給瀏覽器。1.3負載均衡1.3.3負載均衡的主要方式3.反向代理方式客戶端請求的地址是反向代理服務器的地址0,反向代理服務器收到請求后,經(jīng)過負載均衡算法計算得到一個真實物理地址(Web服務器地址),并將請求轉發(fā)給真實服務器,真實服務器處理完成后通過反向代理服務器返回給客戶端。因為反向代理服務器轉發(fā)請求是在HTTP協(xié)議層面的,所以又叫做應用層負載均衡。1.3負載均衡1.3.3負載均衡的主要方式4.IP負載方式IP負載均衡是在網(wǎng)絡層和傳輸層(IP和端口)通過修改目標地址進行負載均衡。1.3負載均衡1.3.3負載均衡的主要方式4.IP負載方式客戶端的請求到達負載均衡服務器時,負載均衡服務器在讀取報文之后根據(jù)算法得到一臺真實服務器地址,然后將用戶請求的目標地址修改成該真實服務器地址,由真實服務器處理請求,請求處理完后返回給負載均衡服務器,負載均衡服務器收到響應后將響應報文的目標地址修改為客戶端地址后再將數(shù)據(jù)返回給客戶端。1.3負載均衡1.3.3負載均衡的主要方式4.IP負載方式該方法比起反向代理方式響應請求的速度要更快,處理性能更好。由于集群最大相應數(shù)據(jù)吞吐量受制于負載均衡服務器的網(wǎng)卡帶寬,難以滿足提供下載服務或視頻服務等需要大量數(shù)據(jù)傳輸?shù)木W(wǎng)站。1.3負載均衡1.3.3負載均衡的主要方式5.鏈路層負載方式網(wǎng)絡中的每臺設備都有一個唯一的網(wǎng)絡標識,這個地址叫MAC地址或網(wǎng)卡地址。數(shù)據(jù)鏈路層負載均衡是在數(shù)據(jù)鏈路層修改MAC地址進行負載均衡。1.3負載均衡1.3.3負載均衡的主要方式5.鏈路層負載方式負載均衡服務器的IP和它所管理的web服務集群的虛擬IP一致;負載均衡數(shù)據(jù)分發(fā)過程中不修改訪問地址的IP地址,而是修改MAC地址;通過這兩點達到不修改數(shù)據(jù)包的原地址和目標地址就可以進行正常的訪問。1.3負載均衡1.3.4負載均衡的算法醫(yī)院的掛號機為看診的患者進行排號,便于不同患者的需求盡快得到處理。掛號機內部設有一定的處理機制進行業(yè)務窗口的排序及分配,這種用系統(tǒng)的方法描述解決問題的策略機制就叫做算法。不管網(wǎng)站采取哪種模式做負載均衡,都需要設定算法指定調度策略。負載均衡算法主要分為靜態(tài)和動態(tài)兩類。靜態(tài)負載均衡算法以固定的順序分配任務,不考慮服務器的實時狀態(tài),如輪詢法、加權輪詢法等;動態(tài)負載均衡算法以服務器的實時負載狀態(tài)信息分配任務,如最小連接法、加權最小連接法等。1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法輪詢法加權輪詢法目標地址哈希法源地址哈希法1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法輪詢法輪詢調度算法(RoundRobinScheduling,RR),調度器采用這種算法時,會將用戶請求無差別地按順序輪流分配到集群中的真實服務器上,不關心每個服務器上實際的連接數(shù)和當前系統(tǒng)負載信息。假設現(xiàn)在后端有4臺真實服務器,前端負載均衡器收到9個用戶請求,暫時將這9個請求依次用1、2、3、4、5、6、7、8、9表示。若負載均衡器采用輪詢法進行任務的分配,這9個請求是什么分配結果呢?1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法第一個用戶請求將被分配給真實服務器1號機進行處理,第二個用戶請求將被分配給真實服務器2號機進行處理,依此類推。當4臺服務器分配完畢時,第5個請求又將被分配給1號機進行處理。只要真實服務器的數(shù)量固定,每臺機器處理的請求序號也是固定的。輪詢法1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法加權輪詢法加權輪詢調度算法(WeightedRoundRobinScheduling,WRR),調度器采用這種算法時,會將用戶請求按照真實服務器不同的處理能力進行分配。給配置高、負載低的機器配置更高的權重,讓其處理更多的請求;而配置低、負載高的機器,給其分配較低的權重,降低其系統(tǒng)負載。按照權重進行任務的調度,可以保證請求分配的合理性。1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法加權輪詢法若負載均衡器采用加權輪詢法進行任務的分配,首先會在內部生成一個服務器序列。每當收到請求時,就依次從該序列中取出一個服務器用于處理用戶請求。比如現(xiàn)在有三臺真實服務器A、B、C,它們的處理能力分別為2,1,3,加權輪詢算法會生成序列{A,A,B,C,C,C}。這樣,每收到6個客戶端的請求,服務器會把其中的1個請求轉發(fā)給后端的B,把其中的2個請求轉發(fā)給后端的A,把其中的3個請求轉發(fā)給后端C。收到的第7個請求,重新從該序列的頭部開始輪詢。1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法加權輪詢法總的來說,加權輪詢算法要生成一個服務器序列,該序列含N個服務器。N是所有真實服務器的權重之和。在這個序列中,將服務器的處理能力以一定的維度進行衡量,每個服務器的能力用數(shù)字量化為其權重值。同時在生成的序列中,服務器的分配應該盡可能地均勻。比如序列{A,A,B,C,C,C}中,前2個請求都會分配給服務器A,這是一種不均勻的分配方法,更好的序列應該是:{C,A,B,C,A,C}。1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法目標地址哈希法目標地址哈希法(DestinationHashingScheduling,DH)是一種靜態(tài)映射算法,通過一個散列(Hash)函數(shù)將一個目標IP地址映射到一臺服務器。服務器首先將用戶請求的目標IP地址作為散列鍵(HashKey),再從靜態(tài)分配的散列表找出對應的服務器,如果該服務器是可用的且未超載,就將請求發(fā)送到該服務器,否則返回空。1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法源地址哈希法源地址哈希法(SourceHashingScheduling,SH)也是一種靜態(tài)映射算法,通過一個散列(Hash)函數(shù)將一個源地址IP地址映射到一臺服務器。服務器首先將用戶請求的源IP地址(即客戶端地址)作為散列鍵(HashKey),再從靜態(tài)分配的散列表找出對應的服務器,如果該服務器是可用的且未超載,就將請求發(fā)送到該服務器,否則返回空。采用源地址哈希法進行負載均衡,源地址一樣的請求都會被分配到同一臺服務器進行處理,可以實現(xiàn)會話的粘滯性。1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法源地址哈希法假設現(xiàn)在有A、B、C、D四臺真實服務器,隨機抽取之前處理過的9個請求,以序號1~9表示,查看實際對這9個請求進行處理的服務器。服務器A:1、7服務器B:2、3、4、5服務器C:9服務器D:6、8若該服務器采用的是源地址哈希法進行負載均衡,那么再次收到這9個請求源客戶端的請求時,實際處理請求的服務器是怎樣分配的呢?1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法采用源地址哈希法進行負載均衡,源地址一樣的請求都會被分配到同一臺服務器進行處理。但如果某個服務器出現(xiàn)故障,會導致這個服務器上的客戶端無法使用,無法保證高可用。當某一用戶成為熱點用戶,將會有巨大的流量涌向這個服務器,導致負載分布不均衡,無法有效利用集群的性能。源地址哈希法1.3負載均衡1.3.4負載均衡的算法1.靜態(tài)負載均衡算法—優(yōu)缺點對比算法優(yōu)點缺點輪詢法簡單高效,易于水平擴展,每個服務器任務分配均衡無法保證任務分配的合理性,無法根據(jù)服務器承受能力來分配任務加權輪詢法可以將不同機器的性能問題納入考量范圍,集群性能最優(yōu)最大化服務器抗壓能力無法精確估量,靜態(tài)算法導致無法實時動態(tài)調整節(jié)點權重,只能粗糙優(yōu)化目標地址哈希法根據(jù)用戶訪問的URL的哈希結果,使每個URL定向到同一個后端服務器上,假如某一個目標服務器不可以,或者負載過高,那么會影響發(fā)往該目標服務器的請求無法得到響應。源地址哈希法源地址一樣的請求都會被分配到同一臺服務器進行處理,可以解決session會話共享的問題,實現(xiàn)會話粘滯1.由于用戶的活躍度不同,可能會有大量的活躍用戶被哈希到相同的服務器上,造成該服務器特別繁忙,大量的非活躍用戶被哈希到相同的服務器上,造成該服務器幾乎沒有請求,造成請求不均衡;2.一旦某個服務器掛掉,那么哈希到該服務器的所有源請求都會失敗,直到服務恢復或者服務器列表中去掉該服務器1.3負載均衡1.3.4負載均衡的算法2.動態(tài)負載均衡算法最小連接數(shù)法加權最小連接數(shù)法基于局部性的最少鏈接法帶復制的基于局部性最少鏈接法1.3負載均衡1.3.4負載均衡的算法2.動態(tài)負載均衡算法最小連接法最小連接法(LeastConnectionScheduling,LC),采用這種算法做負載均衡時,調度器會根據(jù)每個真實服務器當前的連接情況,動態(tài)選取當前連接數(shù)最小的服務器來處理當前請求。最小連接法通過真實服務器當前活躍的連接數(shù)來判斷真實服務器的情況,每當真實服務器有新的連接或斷開連接時都需要進行計數(shù),調度器根據(jù)各個真實服務器的連接數(shù)合理進行任務的分配。在實際應用中,同一集群的真實服務器具有相近的系統(tǒng)性能,對外提供的服務也一致,采用最小連接法可以較好地進行負載均衡。1.3負載均衡1.3.4負載均衡的算法2.動態(tài)負載均衡算法最小連接法假設現(xiàn)在真實服務器組中有A、B、C、D四臺服務器,它們當前的連接數(shù)分別是2、4、1、2,負載均衡采用的算法是最小連接法。若此時來了一個新的用戶請求,按照最小連接法的原則,該請求就會被分配至RS-C進行處理。1.3負載均衡1.3.4負載均衡的算法2.動態(tài)負載均衡算法加權最小連接法加權最小連接法(WeightedLeastConnectionScheduling,WLC)在實現(xiàn)時增加了權重的計算,在LC算法的計算標準上除以權重,計算結果數(shù)值小的將接受下次訪問請求,是企業(yè)最常用的算法也是LVS的默認算法。采用這種算法時,調度器可以自動問詢真實服務器的負載情況,并動態(tài)調整其權值。1.3負載均衡1.3.4負載均衡的算法2.動態(tài)負載均衡算法基于局部性的最少鏈接法基于局部性的最少鏈接法(Locality-BasedLeastConnectionsScheduling,LBLC)類似目標地址哈希法,是針對目標IP地址的負載均衡算法,調度器根據(jù)請求的目標IP地址找出最近為該目標IP地址服務的真實服務器,若該真實服務器是可用的且沒有超載,則將請求發(fā)送給該真實服務器,否則調度器將使用“最小連接”原則選出一個可用的真實服務器并將請求發(fā)送到該服務器,這種算法主要用于Cache集群系統(tǒng)。1.3負載均衡1.3.4負載均衡的算法2.動態(tài)負載均衡算法帶復制的基于局部性最少鏈接法帶復制的基于局部性最少鏈接法(Locality-BasedLeastConnectionswithReplicationScheduling,LBLCR)也是針對目標IP地址的負載均衡,它與LBLC算法的不同之處是它維護的是從一個目標IP地址到一組服務器的映射,而LBLC算法維護的是從一個目標IP地址到一臺服務器的映射。1.3負載均衡1.3.4負載均衡的算法2.動態(tài)負載均衡算法帶復制的基于局部性最少鏈接法該算法根據(jù)請求的目標IP地址找出為該目標IP地址服務的真實服務器組,按“最小連接”原則從真實服務器組中選出一臺真實服務器。若該真實服務器沒有超載,將請求發(fā)送到該真實服務器,若其超載或者故障,則按“最少連接”原則從整個集群系統(tǒng)中選出一臺服務器加入到真實服務器組中,將請求轉發(fā)到該服務器。同時,當真正處理請求的服務器組有一段時間沒有被修改,調度器會將最忙的服務器從該服務器組中刪除,以降低復制程度。這種算法同樣主要用于Cache集群系統(tǒng)。1.3負載均衡1.3.4負載均衡的算法小結負載均衡算法之所以分為靜態(tài)調度算法和動態(tài)調度算法是因為,靜態(tài)調度算法只按照固定的算法標準計算而不考慮其他因素,如果指定的服務器不在線或已滿載,客戶端的請求將不會被轉發(fā);而動態(tài)調度算法則設置了一系列的約束來動態(tài)地分配客戶端的請求,除非所有的真實服務器都不在線或滿載,否則客戶端的請求都將會得到轉發(fā)。這幾種算法中最常用的是輪詢法、加權輪詢法、最小連接法及加權最小連接法,其中加權最小連接法是LVS的默認算法。在實際使用時,讀者可以按需選擇合適的算法進行負載均衡。1.4服務器健康檢查HTTP/HTTPS監(jiān)聽健康檢查機制ICMP監(jiān)聽健康檢查機制TCP監(jiān)聽健康檢查機制1.4服務器健康檢查務器的健康檢查是指負載均衡通過健康檢查判斷后端服務器是否可用。如果后端服務器異常,負載均衡將自動把訪問請求轉發(fā)到其他健康的服務器上;當異常服務器恢復正常時,負載均衡會自動將該服務器加入集群,繼續(xù)服務。1.4服務器健康檢查在七層負載均衡模式下,負載均衡器向后端轉發(fā)HTTP請求,健康檢查通過HTTPHEAD請求獲取狀態(tài)信息,后端服務器收到請求后,根據(jù)業(yè)務的運行狀況,返回HTTP狀態(tài)碼。1.HTTP/HTTPS監(jiān)聽健康檢查機制1.4服務器健康檢查負載均衡器向后端服務器發(fā)送ICMPEcho包,即ping的方式,若后端服務器可以正常收到ICMPReply,那么服務器ICMO協(xié)議處理正常,即服務器是“活的”。2.ICMP監(jiān)聽健康檢查機制1.4服務器健康檢查負載均衡器向后端服務器的相應端口發(fā)送TCP連接請求,如果三次握手成功建立,那么服務器TCP協(xié)議處理正常。3.TCP監(jiān)聽健康檢查機制1.4服務器健康檢查除此3種服務器健康檢測方式,還可以發(fā)送UDP、FTP、DNS、SSL等協(xié)議包通過是否收到正確的應答來檢查服務器是否存活。服務器的健康檢測在集群系統(tǒng)中有著至關重要的作用,有利于維護系統(tǒng)的高可用。小結課后小結本章重點介紹了集群的核心概念和特點、3類集群及相關軟硬件,詳細介紹了負載均衡相關內容,包括負載均衡的分類、四層和七層負載均衡的區(qū)別、負載均衡的主要方式以及負載均衡的算法,還講解了服務器的健康檢測。希望讀者仔細閱讀本章內容,結合結構圖掌握集群的相關概念,為接下來的學習打好基礎。第2章Web服務集群2.1Web服務集群簡介
2.2
搭建LAMP平臺2.3
搭建LNMP平臺2.4Nginx—負載均衡2.5Web集群實戰(zhàn)案例-業(yè)務上線了解Web服務集群的意義熟練搭建LAMP平臺熟練搭建LNMP平臺熟悉Nginx負載均衡熟練搭建Web服務集群引言大家所熟悉的博客、論壇等網(wǎng)站,其特點就是用戶群體較大。當Web服務器直接面向客戶端時,服務器往往要承載大量并發(fā)請求,單臺服務器難以負荷。為了應對以上問題,可以配置多臺Web服務器組成集群,以擴展架構的穩(wěn)定性和可擴展性,承載更多的并發(fā)量以及提高用戶的訪問速度。2.1Web服務集群簡介組成及概念Web集群基礎架構2.1Web服務集群簡介Web服務集群是指配置若干(兩臺及以上)臺Web服務器組成一個系統(tǒng),作為一個整體為用戶提供Web服務。在Web集群環(huán)境中,前端使用負載均衡,將用戶請求的流量按照算法分散地移交到后端Web服務器集群中,實現(xiàn)請求的分發(fā),將會大大提升系統(tǒng)的吞吐量與請求性能。2.1Web服務集群簡介Web服務器又稱為網(wǎng)站服務器,能夠處理瀏覽器等客戶端的請求然后返回相應結果,Web服務器可提供瀏覽類網(wǎng)站文件,又可提供下載類數(shù)據(jù)文件。常見的Web服務器協(xié)議有HTTP、HTML文檔格式、URL(UniformResourceLocator,統(tǒng)一資源定位符)等,其中URL就是用戶在瀏覽器中輸入的網(wǎng)站地址。2.1Web服務集群簡介當前主流的Web服務器有Apache、Nginx、IIS,在云端Web類應用中,使用率可達95%以上。Apache是世界使用最多的Web服務器,是Web服務器的“領頭人”,同時,Nginx性能穩(wěn)定,有著代替Apache的趨勢,這兩者在Linux系統(tǒng)下都能被靈活地配置調用,而IIS主要用于Windows的Web類應用。Web服務器的市場份額2.1Web服務集群簡介假設用戶A通過負載均衡登錄網(wǎng)站,第一次登錄的會話信息保存在Web服務器1中,保存的內容叫做Session,可以保證用戶“在線”的狀態(tài)。當網(wǎng)站刷新,負載均衡把請求又分給了Web2,因為Web2沒有用戶A的登錄信息,網(wǎng)站就會提示用戶A重新登錄,以此類推,用戶A無法實現(xiàn)會話保持。實現(xiàn)Session共享就可以解決以上問題,如Nginx負載均衡的ip_hash算法、LVS的持久連接機制、HAProxy負載均衡的source算法以及基于cookie的會話保持處理機制。Web集群基礎架構2.2搭建LAMP平臺LAMP簡介實驗的準備環(huán)境LAMP的部署及測試2.2
搭建LAMP
平臺2.2.1LAMP簡介在LAMP中,Linux是自由和開放源碼的類Unix操作系統(tǒng),可安裝在各種計算機硬件設備中。Apache是最受歡迎的一個開放源碼的Web服務器軟件,強大且實用。M可以是多線程、多用戶的SQL數(shù)據(jù)庫管理系統(tǒng)MySQL,也可以是MariaDB。P一般是指PHP、Perl或Python等腳本語言,其中PHP是一種編程語言,最初用來設計生產(chǎn)動態(tài)網(wǎng)站,主要用于服務器端的應用程序軟件。LAMP可以是LinuxApacheMySQLPHP的簡寫,其實就是把Apache、MySQL以及PHP安裝在Linux系統(tǒng)上,來運行動態(tài)網(wǎng)站或者服務器,是比較常用的Web搭建框架。2.2
搭建LAMP
平臺2.2.1LAMP簡介LAMP的工作原理2.2
搭建LAMP
平臺2.2.1LAMP簡介瀏覽器向服務器發(fā)送HTTP請求,服務器(Apache)接受請求。PHP作為Apache的組件模塊也會一起啟動,它們具有相同的生命周期。Apache會將一些靜態(tài)資源保存,然后去調用PHP處理模塊進行PHP腳本的處理。腳本處理完后,Apache將處理完的信息通過httpresponse的方式發(fā)送給瀏覽器,經(jīng)瀏覽器解析、渲染等一系列操作后呈現(xiàn)整個網(wǎng)頁。LAMP的工作原理2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境本書全部實驗使用虛擬機代替物理服務器,在虛擬環(huán)境下的Linux操作系統(tǒng)中進行,實驗所用操作系統(tǒng)版本為CentOS7.6。CentOS7自帶Firewalld和SELinux守護工具,一外一內,保證系統(tǒng)的安全。嚴格意義上來說,可以通過配置相關策略來開放系統(tǒng)及服務的訪問權限,這種做法雖然較準確但是繁瑣。為了避免因防火墻造成各種連接不成功以至于實驗失敗的情況,這里直接關閉Firewalld和SELinux,后續(xù)章節(jié)的實驗也默認關閉。2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境1.查看系統(tǒng)版本號[root@qfedu~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境2.關閉CentOS7默認防火墻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)首先查看虛擬機當前防火墻的狀態(tài)2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境2.關閉CentOS7默認防火墻Firewalld通過上面這段代碼的反饋信息,可以觀察到防火墻目前是開啟的。輸出結果第2行括號中的第二個字段表示的是服務的自啟動狀態(tài),若為enabled,則說明該服務會開機自啟動;若為disabled,則開機不會自啟。第3行active表示的是活動,其冒號后面若為active(running),則表示防火墻為啟動狀態(tài);若為inactive(dead),則說明當前防火墻為關閉狀態(tài)。(1)首先查看虛擬機當前防火墻的狀態(tài)2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境2.關閉CentOS7默認防火墻Firewalld[[root@qfedu~]#systemctlstopfirewalld[root@qfedu~]#systemctldisablefirewalld(2)關閉防火墻,并禁止其開機自啟2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境2.關閉CentOS7默認防火墻Firewalld[root@qfedu~]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;disabled;vendorpreset:enabled)Active:inactive(dead)……此處省略部分代碼……(3)再次查看防火墻狀態(tài)當前防火墻的狀態(tài)為關閉2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境3.關閉SELinux[root@qfedu~]#getenforceEnforcing(1)首先查看當前SELinux的狀態(tài)系統(tǒng)返回的信息為Enforcing,意為執(zhí)行,即SELinux正在運行2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境3.關閉SELinux[root@qfedu~]#setenforce0[root@qfedu~]#getenforcePermissive(2)臨時關閉SELinux,并再次查看SELinux的狀態(tài)SELinux的狀態(tài)為Permissive,意為允許的2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境3.關閉SELinux[root@qfedu~]#vim/etc/selinux/config#ThisfilecontrolsthestateofSELinuxonthesystem.#SELINUX=cantakeoneofthesethreevalues:#enforcing-SELinuxsecuritypolicyisenforced.#permissive-SELinuxprintswarningsinsteadofenforcing.#disabled-NoSELinuxpolicyisloaded.#SELINUX=enforcing#修改前SELINUX=disabled#修改后(3)禁止SELinux開機自啟將SELINUX=enforcing修改為SELINUX=disabled2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境3.關閉SELinux[root@qfedu~]#reboot[root@qfedu~]#getenforceDisabled(4)重啟虛擬機,再次查看SELinux狀態(tài)SELinux的狀態(tài)為Disabled,說明SELinux已關閉,并被禁止開機自啟。至此,準備工作已全部完成,本書后續(xù)實驗將不再詳細介紹該環(huán)節(jié)。2.2
搭建LAMP
平臺2.2.3LAMP的部署及測試在單機環(huán)境下部署LAMP環(huán)境,首先關閉防火墻及SELinux,之后利用yum工具依次安裝Apache、PHP和MySQL,并進行測試。準備1臺VM虛擬機搭建LAMP平臺HostNameIP說明web139搭建LAMP框架說明:操作系統(tǒng)版本CentOS7.6,提前關閉防火墻及SELinux。2.2
搭建LAMP
平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試[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完畢!(1)安裝Apache2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試[root@web1~]#httpd-vServerversion:Apache/2.4.6(CentOS)Serverbuilt:Nov10202114:41:18本次實驗的Apache版本為2.4.6(1)安裝Apache2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試[root@web1~]#systemctlstarthttpd[root@web1~]#systemctlenablehttpdCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/httpd.serviceto/usr/lib/systemd/system/httpd.service.(3)啟動Apache服務并設置開機自啟2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試在本機瀏覽器中輸入虛擬機的IP地址,如果看到Apache默認的測試頁面,說明Apache服務成功運行。直接在瀏覽器上訪問當前主機的IP地址。(4)驗證Apache服務是否安裝成功2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試Apache的默認網(wǎng)站目錄是/var/www/html,先切換到該路徑,再創(chuàng)建HTML靜態(tài)頁面。(5)測試Apache是否能解析常見的靜態(tài)頁面[root@web1~]#cd/var/www/html/[root@web1html]#vimindex.htmlWelcometotheworld!2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試在瀏覽器中輸入IP地址。(5)測試Apache是否能解析常見的靜態(tài)頁面靜態(tài)頁面被成功解析,訪問正常2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試對動態(tài)頁面進行測試,這里選用的是動態(tài)語言中最常用的PHP語言作為測試對象。在網(wǎng)站根目錄編寫一個PHP文件:(5)測試Apache是否能解析常見的動態(tài)頁面[root@web1html]#vimindex.php<?phpphpinfo();?>2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試在瀏覽器中訪問39/index.php(5)測試Apache是否能解析常見的動態(tài)頁面服務器僅僅把index.php當作正常的靜態(tài)語言原封不動地進行輸出,并沒有對PHP語言進行解釋,這是因為Apache本身并不能識別PHP語言。如果想達到預期效果,服務器需要先借助PHP軟件進行翻譯,再根據(jù)翻譯后的含義進行相關操作。2.2搭建LAMP平臺2.2.3LAMP的部署及測試2.PHP的安裝與測試[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完畢!(1)安裝PHP2.2搭建LAMP平臺2.2.3LAMP的部署及測試2.PHP的安裝與測試[root@web1html]#systemctlrestarthttpd(2)重啟Apache服務2.2搭建LAMP平臺2.2.3LAMP的部署及測試2.PHP的安裝與測試安裝PHP之后,Apache可以實現(xiàn)對動態(tài)頁面的正常訪問。需要注意的是安裝PHP之后,需要重啟Apache,才能實現(xiàn)Apache與PHP的連接。(3)再次訪問index.php2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試[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客戶端與服務端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作為依賴被升級:mariadb-libs.x86_641:5.5.68-1.el7完畢!2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(1)安裝MariaDB客戶端與服務端啟動MariaDB服務,并設置其開機自啟[root@web1~]#systemctlstartmariadb[root@web1~]#systemctlenablemariadb2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(2)更改數(shù)據(jù)庫密碼首先,通過如下指令進入數(shù)據(jù)庫安全設置模式。[root@web1~]#mysql_secure_installation2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(2)更改數(shù)據(jù)庫密碼然后,對數(shù)據(jù)庫密碼進行修改。這里設置的用戶名默認為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平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(3)登錄數(shù)據(jù)庫測試[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平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(4)測試PHP與數(shù)據(jù)庫是否連通首先在網(wǎng)站根目錄下創(chuàng)建linktest.php,設定之前設置的數(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平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(4)測試PHP與數(shù)據(jù)庫是否連通在瀏覽器上訪問linktest.php服務器目前無法處理這個請求。雖然已經(jīng)安裝了數(shù)據(jù)庫,但是并沒有將數(shù)據(jù)庫與網(wǎng)站服務連接起來,缺少PHP與數(shù)據(jù)庫連接的插件。2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(5)查看PHP的拓展模塊[root@web1~]#php-m|grepmysql2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(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平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(7)再次查看PHP的拓展模塊[root@web1~]#php-m|grepmysqlmysqlmysqlipdo_mysql2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(8)重啟Apache服務[root@web1~]#systemctlrestarthttpd2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(9)再次在瀏覽器上訪問linktest.php改動linktest.php中的賬戶或密碼,這里將root改為rooot,再次訪問linktest.php2.2搭建LAMP平臺2.2.3LAMP的部署及測試由此可知,在Apache上運行一個網(wǎng)站是非常簡單的,只要將源碼放入網(wǎng)站根目錄即可。隨著業(yè)務的發(fā)展,越來越多的公司選擇使用Java語言來開發(fā)應用。能夠發(fā)布JavaWeb程序的服務器需要支持Servlet和Jsp規(guī)范,常見的有Tomcat服務器、Resin服務器、JBoss服務器、WebLogic服務器等。其中Tomcat服務器性能穩(wěn)定且開源免費,易被初學者掌握,因此,讀者在課余時間可以學習Tomcat服務器的相關內容。2.3搭建LNMP平臺LNMP簡介LNMP的部署及測試2.3
搭建LNMP平臺2.3.1
LNMP簡介LAMP是LinuxNginxMySQLPHP的簡寫,即把Nginx、MySQL以及PHP安裝在Linux系統(tǒng)上,組成一個高效、免費、高擴展的網(wǎng)站服務系統(tǒng),是國內大中型互聯(lián)網(wǎng)公司網(wǎng)站常用的Web搭建框架。LAMP中是以Apache作為Web服務器與客戶端瀏覽器進行交互,顧名思義,在LNMP環(huán)境中,是以Nginx作為Web服務器。Nginx(enginex)是一款高性能、輕量級的Web服務器,是一款反向代理服務器,也是一款郵箱代理服務器(IMAP/POP3/SMTP),具有性能優(yōu)越、功能豐富、占有內存少等優(yōu)點。Nginx既適用于靜態(tài)業(yè)務又適用于動態(tài)業(yè)務,國內的百度、淘寶、阿里、小米等知名網(wǎng)站都在使用Nginx來滿足其高并發(fā)業(yè)務的需求,已經(jīng)開始逐漸代替Apache。2.3
搭建LNMP平臺2.3.1
LNMP簡介LNMP的工作原理如圖所示。瀏覽器發(fā)送請求到服務器(Nginx),服務器響應并處理Web請求。如果是靜態(tài)文本直接返回,否則將腳本(PHP)通過接口傳輸協(xié)議(網(wǎng)關協(xié)議)PHP-FCGI(fast-cgi,快速通用網(wǎng)關接口)傳輸給PHP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度美團團購服務合同范本升級版8篇
- 二零二五年度高空作業(yè)腳手架租賃與施工總承包合同3篇
- 2025版協(xié)議離婚特殊規(guī)定及婚姻財產(chǎn)分割與子女撫養(yǎng)合同3篇
- 2025版臨時工特殊工種作業(yè)安全協(xié)議書4篇
- 2025年度酒店式公寓房間長期租賃服務協(xié)議3篇
- 2025年度個人企業(yè)全額承包經(jīng)營合作協(xié)議范本4篇
- 2025年度新能源電池殼體模具開發(fā)與加工服務協(xié)議4篇
- 2025年度文化創(chuàng)意園區(qū)場地租賃安全管理與文化創(chuàng)新合同4篇
- 水電消防工程2025年度施工及進度管理合同2篇
- 2025新生入學教育法律協(xié)議書(定制版)2篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設備的選擇和安裝接地配置和保護導體
- GJB9001C質量管理體系要求-培訓專題培訓課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購投標方案(技術方案)
- 基于學習任務群的小學語文單元整體教學設計策略的探究
- 人教版高中物理必修一同步課時作業(yè)(全冊)
- 食堂油鍋起火演練方案及流程
- 《呼吸衰竭的治療》
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復習初中道德與法治知識點總結(重點標記版)
- 2024年手術室的應急預案
評論
0/150
提交評論