php底層深度探索(2)—Apache運行機制剖析 王澤賓

來源:互聯網
上載者:User

二、Apache運行機制剖析

l         B/S互動過程

瀏覽器和伺服器一次互動的過程

 

1、 瀏覽器(Browser)向伺服器(Web Server)發出HTTP請求(Request)。

2、 伺服器(Web Server)分析瀏覽器的請求,輸出響應資料(Response)。

3、 瀏覽器(Browser)收到響應資料後進行解析,最後顯示在瀏覽器中。

下面是一份瀏覽器的請求資料和伺服器的響應資料:

 

 

 

以上內容非常簡單,我想Web開發人員都很清楚這個過程,在此不再贅述。

 

l         Apache概述

Apache是目前世界上使用最為廣泛的一種Web Server,它以跨平台、高效、穩定而聞名,按照官方統計的資料,Apache伺服器的裝機量大約佔據該市場60%以上的份額,尤其是在X(Unix/Linux)平台上最為普遍。另外的一些Web Server產品,比如IIS只能運行在Windows平台上,大多結合微軟的.Net技術機構一起使用。Apache最為詬病的一點是越來越重,被認為是重量級的WebServer,所以後來又出現了很多輕量級的替代產品,比如lighttpd,nginx,它們的共同特點就是效率顯著提高,但又往往只用於某些特定場合。

 

l         Apache組件邏輯圖

Apache是基於模組化設計的,核心代碼其實並不多。你如果想要閱讀Apache的原始碼,建議你直接從core.c檔案讀起,主要的處理邏輯都包含在裡面。Apache大多數的功能都被分散到各個模組中,系統啟動的時候按需載入。MPM(Multi -Processing Modules,多重處理模組)是Apache的核心組件,Apache通過MPM使用作業系統的資源,管理進程/線程池。另外,Apache為了能夠獲得最好的運行效能,他針對不同的平台(Unix/Linux、Window)做了最佳化,提供不同的MPM,其中最為常見的有prefork和worker兩種。您的伺服器跑的是哪種方式,取決於安裝Apache過程中指定的編譯參數。在X系統上預設編譯為prefork模式。由於大多數的Unix都不支援真正的多線程,所以採用預派生子進程(prefork)方式,worker是一種基於多進程多線程混合的模式。對此感興趣的同學可以閱讀有關資料,此處不再多講。

 

Apache的邏輯構成以及與作業系統的關係

APR(Apache portable Runtime Library),即Apache可移植運行庫,是一個抽象庫用來實現Apache內部組件對作業系統的使用。Apache對於php的解析,就是通過圖中所標的php Module完成的。

l         Apache的生命週期

這一節的內容會與php模組的載入有關,您可以略微關注一下。以形用來說明Apache的生命週期(prefork模式)

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.