apache配置优化
最近參加了很多面試,多多少少有點(diǎn)小感悟,可以說(shuō)觀念轉(zhuǎn)變了不少,特別是對(duì)于作為一個(gè)開發(fā)人員的定位,原來(lái)只是認(rèn)為開發(fā)人員就只需要寫好代碼就行了,所以只需要有數(shù)據(jù)結(jié)構(gòu),算法,設(shè)計(jì)模式,重構(gòu)方面的知識(shí)就行了。但是經(jīng)過(guò)多次的面試,認(rèn)識(shí)到網(wǎng)站的維護(hù)和優(yōu)化也是開發(fā)人員的一個(gè)必要的素質(zhì)。幾乎所有的面試官都會(huì)問(wèn)到一個(gè)問(wèn)題,那就是如何優(yōu)化一個(gè)網(wǎng)站,這個(gè)問(wèn)題涉及到很多方面,其實(shí)面試官就是想考察你對(duì)常見的服務(wù)器,數(shù)據(jù)庫(kù)的知識(shí)是否熟悉。
?
apache的配置優(yōu)化可以從以下幾個(gè)方面來(lái)考慮:
?
一 . 內(nèi)存
? ? ? ? ? ?要讓服務(wù)器運(yùn)行的足夠快,重點(diǎn)是要確保有足夠的內(nèi)存。方法是測(cè)定運(yùn)行Apache進(jìn)程平均所需的內(nèi)存容量。將此數(shù)目乘上最大負(fù)荷量。
? ? ? ? ? ?如果不管什么原因都無(wú)法替服務(wù)器加入更多的內(nèi)存,可以用相同的技術(shù)推算出在任何時(shí)間能夠服務(wù)的最大子進(jìn)程數(shù),并使用MaxClient
? ? ? ? ? ?指令來(lái)限制Apache最多只能處理這么多進(jìn)程。
二. 調(diào)節(jié)保持鏈接(KeepAlive)的設(shè)定
? ? ? ? ? http的默認(rèn)行為是在新的連接上請(qǐng)求文件,這會(huì)花費(fèi)許多時(shí)間啟動(dòng)與關(guān)閉連接。使用KeepAlive可以在單一連接時(shí)進(jìn)行多個(gè)請(qǐng)求,因此
? ? ? ? ? 可以減少建立socket連接所需要的時(shí)間,而這又會(huì)加快客戶端在請(qǐng)求網(wǎng)頁(yè)內(nèi)容時(shí)的加載速度。
? ? ? ? ? ? ?KeepAlive On
? ? ? ? ? ? ?MaxKeepAliveRequests 0
? ? ? ? ? ? ?KeepAliveTimeout 15
三.避免DNS查詢
? ? ? ? ? DNS查詢會(huì)花非常久的時(shí)間,因此應(yīng)該盡量的避免,如果完全無(wú)法查詢客戶端的地址,可能需要幾分鐘才會(huì)讓查詢過(guò)期,而
? ? ? ? ? 在這段時(shí)間內(nèi),執(zhí)行查詢的子進(jìn)程將無(wú)法做其他的事情。方法將HostNameLookups指令始終設(shè)為off
四.最佳化符號(hào)鏈接
? ? ? ? ? 如果服務(wù)器被設(shè)定成不遵循符號(hào)鏈接,則Apache必須考慮文件以及目錄是不是符號(hào)連接。則Apache必須考慮文件以及目錄是不是符號(hào)鏈接,
? ? ? ? ? 此外,如果啟用Option SymLinksIfOwnerMatch, Apache不僅必須檢查特定的文件是否是符號(hào)鏈接,還要檢查鏈接本身以及對(duì)象的所有權(quán)。
? ? ? ? ?雖然這會(huì)強(qiáng)制實(shí)行某種安全防護(hù)原則,但卻會(huì)花費(fèi)相當(dāng)多的時(shí)間。并會(huì)降低運(yùn)行速度。如果重點(diǎn)考慮性能,則使用Option FollowSymlinks,即Apache
? ? ? ? ?設(shè)置不會(huì)檢查是不是符號(hào)鏈接。
五.最小化.htaccess文件對(duì)性能的影響
? ? ? ? ?只在必要的目錄中啟用AllowOverride,并告知Apache不要浪費(fèi)時(shí)間在別的位置查找.htacess文件
? ? ? ? ?AllowOverride None
? ? ? ? ?然后以<Diretory>區(qū)塊啟動(dòng)必要的.htacess文件
六.禁用網(wǎng)頁(yè)內(nèi)容協(xié)商
? ? ? 如果有可能,請(qǐng)禁用網(wǎng)頁(yè)內(nèi)容協(xié)商。不過(guò),如果必須使用網(wǎng)絡(luò)協(xié)商,例如有多種語(yǔ)言的網(wǎng)站,則應(yīng)該使用type-map處理器而非MultiViews指令。
? ? ? 當(dāng)使用MultiViews送出請(qǐng)求時(shí),Apache都需要取得目錄列表。
? ? ? 禁用非必要的網(wǎng)頁(yè)內(nèi)容協(xié)商。如果真的需要使用網(wǎng)頁(yè)內(nèi)容協(xié)商,請(qǐng)使用type-map處理器而非MultiViews選項(xiàng)
? ? ? Option -MultiViews
? ? ? AddHandler type-map var
七. 最佳化進(jìn)程的產(chǎn)生
? ? ? ? MinSpareServers以及MaxSpareServers指令會(huì)控制服務(wù)器池的大小,以便永遠(yuǎn)有子進(jìn)程等待服務(wù)引入的請(qǐng)求。
? ? ? ? 如果閑置的進(jìn)程數(shù)少于MinSpareServers,則Apache會(huì)產(chǎn)生更多的進(jìn)程達(dá)到最少數(shù)目;同理,如果空閑進(jìn)程數(shù)比MaxSpareServers多,
? ? ? ?Apache則會(huì)刪除進(jìn)程直到少于最大數(shù)目。
八.調(diào)節(jié)線程的產(chǎn)生
? ? ? ? 原理同(七)
轉(zhuǎn)載于:https://www.cnblogs.com/zenus/p/4472512.html
總結(jié)
以上是生活随笔為你收集整理的apache配置优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Javascript aop(面向切面编
- 下一篇: JVM性能调优(转)