apache-淺析apache優化的幾點建議

126雲發表於2021-01-26

什麼是Apache?

Apache是Web伺服器軟體,它最常見是搭配PHP開發語言去使用。今天,小編根據Apache官方手冊再結合實際,整理出下面這些優化建議,希望對大家的Apache伺服器的執行效率有效果。

1、控制MaxClients的設定,以避免伺服器產生太多的子程式而發生交換。

程式間的資料交換會佔用很大記憶體,資料交換產生的滯後使使用者總感覺”不夠快”,所以使用者就可能去按”停止”和”重新整理”,從而帶來更大的負載。一般建議小網站將MaxClients設定為12~24。

2、選擇更好的硬體,CPU、記憶體、硬碟等等

這句很雞肋啦,如果有更多的銀子,誰不願意換更好的呢?

3、定期更新作業系統,打上系統補丁;如果你的作業系統支援sendfile()系統呼叫,則務必安裝帶有此功能的版本或補丁

在支援sendfile的系統中,Apache2可以更快地傳送靜態內容而且佔用較少的CPU時間。

4、HostnameLookups設定為off

儘量較少DNS查詢的次數。如果你使用了任何”Allow from domain”或”Deny from domain”指令(也就是domain使用的是主機名而不是IP地址),則代價是要進行兩次DNS查詢(一次正向和一次反向,以確認沒有作假)。所以,為了得到最高的效能,應該避免使用這些指令(不用域名而用IP地址也是可以的)。

5、為Directory加上FollowSymLinks

如果網站空間中沒有使用 Options FollowSymLinks ,Apache就必須執行額外的系統呼叫以驗證符號連線。例如:在請求”/index.html”時,Apache將對”/www”、”/www/htdocs”、”/www/htdocs/index.html”執行lstat()呼叫。而且lstat()的執行結果不被快取,因此對每一個請求都要執行一次。

6、將AllowOverride設定為None

對於使用虛擬主機的朋友可能會覺得不方便,這樣設定將會使.htaccess中的設定失效,如果實在需要,並且在有條件的情況下,請在conf配置檔案中直接寫入rewrite規則

7、禁用內容協商

儘管在實踐中,內容協商的好處大於效能的損失,如果你很在意那一點點的效能損失,則可以禁止使用內容協商。但是仍然有個方法可以提高伺服器的速度,就是不要使用萬用字元。

8、MaxRequestsPerChild設定為非0以防止記憶體洩漏

MaxRequestsPerChild用於控制apache子程式在何時銷燬,預設為0,代表永不銷燬子程式,這可能會存在記憶體洩漏的風險,建議設定為10000

9、KeepAlive與KeepAliveTimeOut

如果你使用的使mpm_prefork模式(apache預設安裝),那麼建議你將KeepAlive設定為off;因為,開啟keepalive會為每個客戶端建立一個連線,prefork不會建立執行緒,估計100個使用者同時訪問你的網站,apache就會掛了~,如果你實在想開啟,那麼請將KeepAliveTimeOut 時間設定更短些,例如5,預設是60秒呢

10、不要靜態編譯apache

儘管會有很多人和你說靜態編譯的好處,同時,你自己也想自己編譯一把,以體驗樂趣~但是,將模組已靜態方式編譯進apache絕對不是一個好選擇,尤其是對於缺銀子的站長們來說,一個配置不當,apache會在啟動時就佔用光你所有的記憶體,最後拖垮伺服器。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957453/viewspace-2753014/,如需轉載,請註明出處,否則將追究法律責任。

相關文章