Apache配置參數(shù)詳解
(1)keepAlive On/Off
keepAlive 指的是保持連接活躍,換一句話說(shuō),如果將KeepAlive設(shè)置為On,那么來(lái)自同一客戶端的請(qǐng)求就不需要再一次連接,避免每次請(qǐng)求都要新建一個(gè)連接而加重服務(wù)器的負(fù)擔(dān)。一般情況下,圖片較多的網(wǎng)站應(yīng)該把KeepAlive設(shè)為On。
(2)KeepAliveTimeOut number
如果第二次請(qǐng)求和第一次請(qǐng)求之間超過(guò)KeepAliveTimeOut的時(shí)間的話,第一次連接就會(huì)中斷,再新建第二個(gè)連接。它的設(shè)置一般考慮圖片或者JS等文件兩次請(qǐng)求間隔,一般設(shè)置為3-5秒。
(3)MaxKeepAliveRequests 100
一次連接可以進(jìn)行的HTTP請(qǐng)求的最大請(qǐng)求次數(shù)。將其值設(shè)為0將支持在一次連接內(nèi)進(jìn)行無(wú)限次的傳輸請(qǐng)求。
事實(shí)上沒(méi)有客戶程序在一次連接中請(qǐng)求太多的頁(yè)面,通常達(dá)不到這個(gè)上限就完成連接了。
(4)HostnameLookups on|off|double
如果是使用on,那么只有進(jìn)行一次反查,如果用double,那么進(jìn)行反查之后還要進(jìn)行一次正向解析,只有兩次的結(jié)果互相符合
才行,而off就是不進(jìn)行域名驗(yàn)證。
如果為了安全,建議使用double;為了加快訪問(wèn)速度,建議使用off
域名查找開(kāi)啟這個(gè)會(huì)增加Apache的負(fù)擔(dān),減慢訪問(wèn)速度建議關(guān)閉
(5)timeout 5
推薦5這個(gè)是Apache接受請(qǐng)求或者發(fā)出相應(yīng)的時(shí)間超過(guò)這個(gè)時(shí)間斷開(kāi)
注意:
以上配置項(xiàng)可在/usr/local/http-2.4.23/conf/extra/httpd-default.conf設(shè)置并在httpd.conf文件中通過(guò)include選項(xiàng)引用
MPM這個(gè)比較關(guān)鍵,是影響并發(fā)效率的主要因素:
(1)StartServers 10
設(shè)置服務(wù)器啟動(dòng)時(shí)建立的子進(jìn)程數(shù)量。因?yàn)樽舆M(jìn)程數(shù)量動(dòng)態(tài)的取決于負(fù)載的輕重,所以一般沒(méi)有必要調(diào)整這個(gè)參數(shù)。
(2)MinSpareServers 10
設(shè)置空閑子進(jìn)程的最小數(shù)量。所謂空閑子進(jìn)程是指沒(méi)有正在處理的請(qǐng)求的子進(jìn)程。如果當(dāng)前空閑子進(jìn)程數(shù)少于MinSpareServers,那么Apache將以最大每秒一個(gè)的速度產(chǎn)生新的子進(jìn)程。只有在非常繁忙機(jī)器上才需要調(diào)整這個(gè)參數(shù)。將此參數(shù)設(shè)的太大通常是一個(gè)壞主意。
(3)MaxSpareThreads 75
設(shè)置空閑子進(jìn)程的最大數(shù)量。如果當(dāng)前有超過(guò)MaxSpareServers數(shù)量的空閑子進(jìn)程,那么父進(jìn)程將殺死多余的子進(jìn)程。只有在非常繁忙機(jī)器上才需要調(diào)整這個(gè)參數(shù)。將此參數(shù)設(shè)的太大通常是一個(gè)壞主意。如果你將該指令的值設(shè)置為比MinSpareServers小,Apache將會(huì)自動(dòng)將其修改成”MinSpareServers+1″。
(4)ServerLimit 2000
服務(wù)器允許配置的進(jìn)程數(shù)上限。只有在你需要將MaxClients設(shè)置成高于默認(rèn)值256的時(shí)候才需要使用。要將此指令的值保持和MaxClients一樣。修改此指令的值必須完全停止服務(wù)后再啟動(dòng)才能生效,以restart方式重新啟動(dòng)將不會(huì)生效。
(5)MaxClients/MaxRequestWorkers 256
用于客戶端請(qǐng)求的最大請(qǐng)求數(shù)量(最大子進(jìn)程數(shù)),任何超過(guò)MaxClients限制的請(qǐng)求都將進(jìn)入等候隊(duì)列。默認(rèn)值是256,如果要提高這個(gè)值必須同時(shí)提高ServerLimit的值。建議將初始值設(shè)為(以MB為單位的最大物理內(nèi)存/2),然后根據(jù)負(fù)載情況進(jìn)行動(dòng)態(tài)調(diào)整。
比如一臺(tái)4G內(nèi)存的機(jī)器,那么初始值就是4000/2=2000。
(6)MaxRequestsPerChild / MaxConnectionsPerChild 0
設(shè)置的是每個(gè)子進(jìn)程可處理的請(qǐng)求數(shù),每個(gè)子進(jìn)程在處理了“MaxRequestsPerChild”個(gè)請(qǐng)求后將自動(dòng)銷毀。0意味著無(wú)限,即子進(jìn)程永不銷毀。內(nèi)存較大的服務(wù)器可以設(shè)置為0或較大的數(shù)字。內(nèi)存較小的服務(wù)器不妨設(shè)置成30、50、100。所以一般情況下,如果你發(fā)現(xiàn)服務(wù)器的內(nèi)存直線上升,建議修改該參數(shù)試試。
注意:
以上配置項(xiàng)可在/usr/local/http-2.4.23/conf/extra/httpd-mpm.conf設(shè)置并在httpd.conf文件中通過(guò)include選項(xiàng)引用。
4.開(kāi)啟Apache的Gzip(deflate)功能:
gzip可以極大的加速網(wǎng)站,有時(shí)壓縮比率高到80%,最少都有40%以上,還是相當(dāng)不錯(cuò)的。
在Apache2之后的版本,模塊名不叫g(shù)zip,而叫mod_deflate
未使用Gzip