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