Apache HTTP Server 版本2.2
說明 | 一個(gè)非線程型的、預(yù)派生的MPM |
---|---|
狀態(tài) | MPM |
模塊名 | mpm_prefork_module |
源文件 | prefork.c |
這個(gè)多路處理模塊(MPM)實(shí)現(xiàn)了一個(gè)非線程型的、預(yù)派生的web服務(wù)器,它的工作方式類似于Apache 1.3。它適合于沒有線程安全庫(kù),需要避免線程兼容性問題的系統(tǒng)。它是要求將每個(gè)請(qǐng)求相互獨(dú)立的情況下最好的MPM,這樣若一個(gè)請(qǐng)求出現(xiàn)問題就不會(huì)影響到其他請(qǐng)求。
這個(gè)MPM具有很強(qiáng)的自我調(diào)節(jié)能力,只需要很少的配置指令調(diào)整。最重要的是將MaxClients
設(shè)置為一個(gè)足夠大的數(shù)值以處理潛在的請(qǐng)求高峰,同時(shí)又不能太大,以致需要使用的內(nèi)存超出物理內(nèi)存的大小。
一個(gè)單獨(dú)的控制進(jìn)程(父進(jìn)程)負(fù)責(zé)產(chǎn)生子進(jìn)程,這些子進(jìn)程用于監(jiān)聽請(qǐng)求并作出應(yīng)答。Apache總是試圖保持一些備用的(spare)或者是空閑的子進(jìn)程用于迎接即將到來(lái)的請(qǐng)求。這樣客戶端就不需要在得到服務(wù)前等候子進(jìn)程的產(chǎn)生。
StartServers
, MinSpareServers
, MaxSpareServers
, MaxClients
指令用于調(diào)節(jié)父進(jìn)程如何產(chǎn)生子進(jìn)程。通常情況下Apache具有很強(qiáng)的自我調(diào)節(jié)能力,所以一般的網(wǎng)站不需要調(diào)整這些指令的默認(rèn)值?赡苄枰幚碜畲蟪^256個(gè)并發(fā)請(qǐng)求的服務(wù)器可能需要增加MaxClients
的值。內(nèi)存比較小的機(jī)器則需要減少MaxClients
的值以保證服務(wù)器不會(huì)崩潰。更多關(guān)于調(diào)整進(jìn)程產(chǎn)生的問題請(qǐng)參見性能方面的提示。
在Unix系統(tǒng)中,父進(jìn)程通常以root
身份運(yùn)行以便邦定80端口,而Apache產(chǎn)生的子進(jìn)程通常以一個(gè)低特權(quán)的用戶運(yùn)行。User
和Group
指令用于設(shè)置子進(jìn)程的低特權(quán)用戶。運(yùn)行子進(jìn)程的用戶必須要對(duì)它所服務(wù)的內(nèi)容有讀取的權(quán)限,但是對(duì)服務(wù)內(nèi)容之外的其他資源必須擁有盡可能少的權(quán)限。
MaxRequestsPerChild
指令控制服務(wù)器殺死舊進(jìn)程產(chǎn)生新進(jìn)程的頻率。
說明 | 空閑子進(jìn)程的最大數(shù)量 |
---|---|
語(yǔ)法 | MaxSpareServers number |
默認(rèn)值 | MaxSpareServers 10 |
作用域 | server config |
狀態(tài) | MPM |
模塊 | prefork |
MaxSpareServers
指令設(shè)置空閑子進(jìn)程的最大數(shù)量。所謂空閑子進(jìn)程是指沒有正在處理請(qǐng)求的子進(jìn)程。如果當(dāng)前有超過MaxSpareServers
數(shù)量的空閑子進(jìn)程,那么父進(jìn)程將殺死多余的子進(jìn)程。
只有在非常繁忙機(jī)器上才需要調(diào)整這個(gè)參數(shù)。將此參數(shù)設(shè)的太大通常是一個(gè)壞主意。如果你將該指令的值設(shè)置為比MinSpareServers
小,Apache將會(huì)自動(dòng)將其修改成"MinSpareServers
+1
"。
說明 | 空閑子進(jìn)程的最小數(shù)量 |
---|---|
語(yǔ)法 | MinSpareServers number |
默認(rèn)值 | MinSpareServers 5 |
作用域 | server config |
狀態(tài) | MPM |
模塊 | prefork |
MinSpareServers
指令設(shè)置空閑子進(jìn)程的最小數(shù)量。所謂空閑子進(jìn)程是指沒有正在處理請(qǐng)求的子進(jìn)程。如果當(dāng)前空閑子進(jìn)程數(shù)少于MinSpareServers
,那么Apache將以最大每秒一個(gè)的速度產(chǎn)生新的子進(jìn)程。
只有在非常繁忙機(jī)器上才需要調(diào)整這個(gè)參數(shù)。將此參數(shù)設(shè)的太大通常是一個(gè)壞主意。