Apache原理及架構(gòu)- IT運維
2020-05-09 16:07 作者:艾銻無限 瀏覽量:
對于
IT運維來說,配置各種web環(huán)境是常見的日常工作。今天跟大家介紹這款大家非常熟悉的web軟件Apache。Apache是世界使用排名第一的Web服務(wù)器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。
web服務(wù)器端的工作流程:
(1)客戶端發(fā)送請求
客戶端(通過瀏覽器)和Web服務(wù)器建立TCP連接,連接建立以后,向Web服務(wù)器發(fā)出訪問請求(如get)。根據(jù)HTTP協(xié)議,該請求中包含了客戶端的IP地址、瀏覽器的類型和請求的URL等一系列信息。
(2)服務(wù)器解析請求
Web服務(wù)器對請求按照HTTP協(xié)議進行解碼來確定進一步的動作,設(shè)計的內(nèi)容有三鼐要點:方法(GET)、文檔(/sample.html)、和瀏覽器使用的協(xié)議(HTTP/1.1)其中方法告訴服務(wù)器應(yīng)完動的動作,GET方法的含義很明顯是:服務(wù)器應(yīng)定位、讀取文件并將它返回給客戶。
Web服務(wù)器軟件現(xiàn)在就知道了,它應(yīng)該找到文件/sample.html,并使用HTTP/1.1協(xié)議將內(nèi)存返回給客戶。信息是經(jīng)過與請求到來相同的連接發(fā)出的,所以服務(wù)器不需要定們客戶或創(chuàng)建新的連接。
(3)讀取其它信息(非必須步驟)
Web服務(wù)器根據(jù)需要去讀取請求的其它部分。在HTTP/1.1下,客戶還應(yīng)給服務(wù)器提供關(guān)于它的一些信息。元信息(metainformation)可用來描述瀏覽器及其能力,以使服務(wù)器能據(jù)此確定如何返回應(yīng)答。
(4)完成請求的動作
若現(xiàn)在沒有錯誤出現(xiàn),WWW服務(wù)器將執(zhí)行請求所要求的動作。要獲取(GET)一個文檔,web服務(wù)器在其文檔樹中搜索請求的文件(/sample.html)。這是由服務(wù)器機器上作為操作系統(tǒng)一部分的文件系統(tǒng)完成的。若文件能找到并可正常讀取,則服務(wù)器將把它返回給客戶。
如果成功:文件被發(fā)送出去。
首先,web服務(wù)器發(fā)送一個狀態(tài)碼及一些描述信息。既然文件已經(jīng)找到,則發(fā)送狀態(tài)碼200,表示一切都OK ,文檔隨后發(fā)出,因為發(fā)送的信息是HTML文檔,所以Content-type 取值為text/html。文檔長為1024個字節(jié),所以Content-type 取1024 。服務(wù)器軟件的標(biāo)識及文件的時間屬性信息也被包含在頭域中。
如果失敗:返回錯誤指示。
如果請求的文件沒有找到或找到但無法讀取,測請求無法滿足。這時將返回不同于200的狀態(tài)碼。最常見的問題是請求中的文件名拼寫有誤,所以服務(wù)器無法找到該文件。這種情況下,服務(wù)器將發(fā)送一個狀態(tài)碼---404 給客戶。
(5)關(guān)閉文件和網(wǎng)絡(luò)連接,結(jié)束會話。
當(dāng)文件已被發(fā)郵或錯誤已發(fā)出后,web服務(wù)器結(jié)束整個會話。它關(guān)閉打開的的被請求文件,關(guān)閉網(wǎng)絡(luò)端口從而結(jié)束網(wǎng)絡(luò)連接。有關(guān)的其它工作則是由客戶端來完成的,包括接收數(shù)據(jù),并以用戶可讀的方式呈現(xiàn)出來。這些與服務(wù)器無關(guān)。
apache架構(gòu)
Apache 作為歷史最悠久的web服務(wù)器,一直是web應(yīng)用系統(tǒng)的首選,是世界上被廣泛應(yīng)用的web 服務(wù)器軟件,它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的web服務(wù)器端軟件之一,也是流行架構(gòu)LAMP的重要組成部分。
Apache 特點:
· 支持最新的HTTP/1.1通信協(xié)議。Apache是最先使用HTTP/1.1協(xié)議的Web服務(wù)器之一,它完全兼容HTTP/1.1協(xié)議并與HTTP/1.0協(xié)議向后兼容。Apache已為新協(xié)議所提供的全部內(nèi)容做好了必要的準(zhǔn)備。
· 支持多計算機平臺。Apache幾乎可以在所有的計算機操作系統(tǒng)上運行,包括主流的UNIX、Linux及Windows操作系統(tǒng)。
· 配置文件簡單,易操作。用戶可以通過直接修改Apache的配置文件信息來修改Apache,操作起來十分方便。
· 支持實時監(jiān)視服務(wù)器狀態(tài)和定制服務(wù)器日志。Apache在記錄日志和監(jiān)視服務(wù)器自身運行狀態(tài)方面提供了很大的靈活性,可以通過Web瀏覽器來監(jiān)視服務(wù)器的狀態(tài),也可以根據(jù)自己的需要來定制日志。
· 支持多種方式的HTTP認(rèn)證。
· 支持Web目錄修改。用戶可以使用特定的目錄作為Web目錄。
· 支持CGI腳本,如Perl、PHP等。
· 支持服務(wù)器端包含指令(SSI)。
· 支持安全Socket層(SSL)。
· 支持FastCGI。
· 支持虛擬主機。即通過在一臺服務(wù)器上使用不同的主機名來提供多個HTTP服務(wù)。Apache支持基于IP、主機名和端口號三種類型的虛擬主機服務(wù)。
· 跟蹤用戶會話。當(dāng)用戶瀏覽基于Apache的Web站點時,可以通過Apache的mod_usertrack模塊對其進行跟蹤。
· 支持動態(tài)共享對象。Apache的模塊可在運行時動態(tài)加載,這就意味著這些模塊可以被裝入服務(wù)器進程空間,從而減少系統(tǒng)的內(nèi)存開銷。
· 支持多進程。當(dāng)負(fù)載增加時,服務(wù)器會快速生成子進程來處理,從而提高系統(tǒng)的響應(yīng)能力。
· 支持第三方軟件開發(fā)商提供的功能模塊。比如Apache加載mod_jserv模塊后可以支持Java Servlet,這樣就可以運行Java應(yīng)用程序了。
· 支持多線程和多進程混合模型的MPM。 當(dāng)MPM類型指定為worker時,由于是使用線程來處理,所以可以處理海量的請求,而系統(tǒng)資源的開銷要小于基于進程的服務(wù)器。
Apache 工作模擬
Apache 2.X 支持插入式并行處理模塊,稱為多路處理模塊(MPM)。在編譯apache時必須選擇也只能選擇一個MPM,對類UNIX系統(tǒng),有幾個不同的MPM可供選擇,它們會影響到apache的速度和可伸縮性。
Worker MPM : 使用多個子進程,每個子進程中又有多個線程。每個線程處理一個請求,該MPM通常對高流量的服務(wù)器是一個不錯的選擇。因為它比prefork MPM需要更少的內(nèi)存且更具有伸縮性。
Prefork MPM : 使用多個子進程,但每個子進程不包含多線程。每個進程只處理一個連接。在許多系統(tǒng)上它的速度和worker MPM一樣快,但是需要更多的內(nèi)存。這種無線程的設(shè)計在某些性況下優(yōu)于worker MPM,因為它可在應(yīng)用于不具備線程安全的第三方模塊上(如 PHP3/4/5),且在不支持線程調(diào)試的平臺上易于調(diào)試,另外還具有比worker MPM更高的穩(wěn)定性。
艾銻無限科技專業(yè):
IT外包、
企業(yè)外包、
北京IT外包、
桌面運維、弱電工程、
網(wǎng)站開發(fā)、wifi覆蓋方案,
網(wǎng)絡(luò)外包,網(wǎng)絡(luò)管理服務(wù),網(wǎng)管外包,
綜合布線,服務(wù)器運維服務(wù),
中小企業(yè)it外包服務(wù),服務(wù)器維保公司,硬件運維,網(wǎng)站運維服務(wù)
以上文章由北京艾銻無限科技發(fā)展有限公司整理