配置網(wǎng)站,要充分的把系統(tǒng)資源利用出去,榨干系統(tǒng)的一切潛能,讓網(wǎng)站速度發(fā)揮到極致。Apache,是用戶瀏覽和網(wǎng)站數(shù)據(jù)的一個中間橋梁。但是在這里,我們雖然做得并不是很多,但是如果心細打理,有些設置也會起到立竿見影的效果。
1、安裝Apache的時候,要正確選擇MPM
要想讓Apache的性能最好,那么第一步要做到的是:選擇合適的MPM。 ( 推薦學習:Apache服務器 )
Apache有3個MPM,它們分別是:event、prefork和worker。
其中,event這個MPM比較適用于有大量連續(xù)連接的情況。KeepAlive的好處是,可以同一個TCP連接中相應多次請求:這種方式,可以使一個包含大量圖片的HTML文檔加速50%。在Apahce配置文件httpd.conf中設置KeepAlive為On,就可以啟動KeepAlive。
prefork 是一個非線程的MPM,。它的特點是:雖然不是很快,但是很穩(wěn)定。它能夠隔離每個請求,所以,如果某個請求出現(xiàn)故障,不會影響其它請求。使用 prefork最重要的一個參數(shù)是MaxClients。
這個MaxClients數(shù)值要足夠大,這樣可以在訪問高峰時發(fā)揮很好的性能;但是同時又不能太大,致使Apache所需內存超出物理內存的大小。
worker是Apache2版本中新開發(fā)的MPM,速度比prefork快很多。而且,由于使用多線程進行訪問處理,所以能夠處理相對海量的請求,而系統(tǒng)資源的占用也要小于基于進程的服務器。worker是Apache 2的主要使用方式。
worker有兩個比較重要的配置參數(shù),那就是:ThreadsPerChild和MaxClients。 ThreadsPerChild用來控制每個子進程允許建立的線程數(shù),MaxClients 用來控制允許建立的總線程數(shù)。
那么,這3個MPM要如何選擇呢?
如果需要更好伸縮性,可以選用worker或event(因為它們是線程化的MPM);如果需要更加好的穩(wěn)定性和兼容性(比如要適應一些舊的軟件),可以選用prefork?!稄膒refork到worker:修改ubuntu apache工作模式》
如果你仍然無法評估自己的需求,仍然不知道應該選擇哪個MPM,那么就推薦使用worker。
2、Apache配置優(yōu)化
在Ubuntu中,Apache主要配置文件是/etc/apache2/apache.conf,以下就針對這個文件來配置。
(1)關閉DNS查詢
HostnameLookups在默認情況是已經(jīng)被設置為off,務必保持該設置。如果需要統(tǒng)計客戶端DNS,那么可以使用第三方軟件來實現(xiàn)。
(2)優(yōu)化MaxClients
Apache2啟動的時候會創(chuàng)建一些進程(配置文件中的StartServer設定的數(shù)目),并保持一個最大的MaxClients數(shù);每一個超過該數(shù)目的連接請求,都會排隊等待。