apache優化建議

2022-05-18 20:19:39 字數 1591 閱讀 5862

之前vps使用的是預設的apache配置,感覺還行,不過隨著部落格的**量上公升,顯然這種配置無法滿足需求了;下面是apache官方手冊中給出的幾條優化配置建議,筆者將其整理出來,對apache伺服器的執行效率是有幫助的。

控制maxclients的設定,以避免伺服器產生太多的子程序而發生交換。

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

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

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

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

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

hostnamelookups設定為off

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

為directory加上followsymlinks

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

將allowoverride設定為none

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

禁用內容協商

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

maxrequestsperchild設定為非0以防止記憶體洩漏

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

keepalive與keepalivetimeout

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

不要靜態編譯apache

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

mysql優化建議

1.建立 2.sql編寫mysql欄位型別 資料型別 含義date 3位元組,日期,格式 2014 09 18 time 3位元組,時間,格式 08 42 30 datetime 8位元組,日期時間,格式 2014 09 18 08 42 30 timestamp 4位元組,自動儲存記錄修改的時間 ...

MySQL優化建議

設計資料表的時候要遵守三正規化,但是不要嚴格遵守。可以適度打破正規化。乙個表字段不適合過多。常用表中只要保留常用的字段 盡量給每個字段新增not null 根據表的特點來選擇合適的表引擎,如果這個表經常被寫,應該選擇innodb,但是mysql5.6一般都是選擇innodb 根據表存放的資料來決定字...

mysql優化建議

sql優化判斷 1.首先是定位效率比較低的sql語句 2.使用explain分析低效sql的執行計畫 type const system 單錶中最多有乙個匹配行 type eq ref 使用唯一索引,對於每個索引鍵值,表中只有一條記錄匹配 type ref 使用的是非唯一索引或者字首索引掃瞄,返回匹...