Apache 的兩種工做模式安全
1.什麼是MPM服務器
MPM(Multi-Processing Modules,多路處理模塊)是Apache的核心組件之一,Apache經過MPM來使用操做系統的資源,對進程和線程池進行管理。Apache爲了可以得到更好的運行性能,針對不一樣的平臺 (Unix/Linux、Window)提供了不一樣的MPM,用戶能夠根據實際狀況進行選擇,其中最常使用的MPM有 prefork和worker兩種。併發
2.Preforkide
工做原理:Prefork是非線程、預生成進程型MPM,會預先啓動一些子進程,每一個子進程一個時間只能處理一個請求,而且會根據併發請求數量動態生成更多子進程性能
3.worker操作系統
Workder是線程化、多進程的MPM,每一個進程能夠生成多個線程,每一個線程處理一個請求;不須要啓用太多的子進程,每一個進程可以擁有的線程數量是固定的。服務器會根據負載狀況增長或減小進程數量。一個單獨的控制進程(父進程)負責子進程的創建。每一個子進程可以創建ThreadsPerChild數量的服務線程和一個監聽線程,該監聽線程監聽接入請求並將其傳遞給服務線程處理和應答。線程
Prefork和Worker的比較設計
prefork方式速度要稍高於worker,然而它須要的cpu和memory資源也稍多於woker。代理
prefork的無線程設計在某些狀況下將比worker更有優點:它可使用那些沒有處理好線程安全的第三方模塊,而且對於那些線程調試困難的平臺而言,它也更容易調試一些。調試
在一個高流量的HTTP服務器上,Worker MPM是個比較好的選擇,由於Worker MPM的內存使用比Prefork MPM要低得多。
Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,能夠在大多數計算機操做系統中運行,因爲其多平臺和安全性被普遍使用,是最流行的Web服務器端軟件之一。它快速、可靠而且可經過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。
它能夠運行在幾乎全部普遍使用的計算機平臺上
Apache的特色是簡單、速度快、性能穩定,並可作代理服務器來使用
它的源代碼開放,支持跨平臺的應用(能夠運行在幾乎全部的Unix、Windows、Linux系統平臺上)以及它的可移植性等方面。