讓您全面了解并上手億速云產品
常見入門級使用教程
對外 API 開發文檔中心
您歷史提交的工單
您的每一條意見,我們都嚴謹處理
您的每一條建議,我們都認真對待
本文主要和大家分享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會在啟動時就占用光你所有的內存,最后拖垮服務器。