apache的工作模式介紹

apache的工作模式介紹

apache的工作模式

(推薦教程:apache從入門到精通

prefork的工作原理

一個單獨的控制進程(父進程)負責產生子進程,這些子進程用于監聽請求并作出應答。

apache總是試圖保持一些備用的 (spare)或是空閑的子進程用于迎接即將到來的請求。這樣客戶端就無需在得到服務前等候子進程的產生。在unix系統中,父進程通常以root身份運行以便邦定80端口,而 Apache產生的子進程通常以一個低特權的用戶運行。

User和Group指令用于配置子進程的低特權用戶。運行子進程的用戶必須要對他所服務的內容有讀取的權限,但是對服務內容之外的其他資源必須擁有盡可能少的權限。

worker的工作原理

每個進程能夠擁有的線程數量是固定的。服務器會根據負載情況增加或減少進程數量。

一個單獨的控制進程(父進程)負責子進程的建立。每個子進程能夠建立ThreadsPerChild數量的服務線程和一個監聽線程,該監聽線程監聽接入請求并將其傳遞給服務線程處理和應答。Apache總是試圖維持一個備用(spare)或是空閑的服務線程池。

這樣,客戶端無須等待新線程或新進程的建立即可得到處理。在Unix中,為了能夠綁定80端口,父進程一般都是以root身份啟動,隨后,Apache以較低權限的用戶建立子進程和線程。User和Group指令用于配置Apache子進程的權限。雖然子進程必須對其提供的內容擁有讀權限,但應該盡可能給予他較少的特權。

另外,除非使用了suexec ,否則,這些指令配置的權限將被CGI腳本所繼承

Event MPM

這是Apache最新的工作模式,它和worker模式很像,不同的是在于它解決了keep-alive長連接的時候占用線程資源被浪費的問題,在event工作模式中,會有一些專門的線程用來管理這些keep-alive類型的線程,當有真實請求過來的時候,將請求傳遞給服務器的線程,執行完畢后,又允許它釋放。

這增強了在高并發場景下的請求處理。在unix系統中的apache2.4版本使用的就是這個模式。

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享