網(wǎng)站的訪問量變得非常大之后,如果仍然使用虛擬主機的話,網(wǎng)站就會因為訪問量過大而引起服務(wù)器性能問題,這是很多人的煩惱。網(wǎng)站流量太多了,我們需要采用什么樣的方法來解決訪問量的問題呢?
1、提高服務(wù)器性能
應(yīng)對網(wǎng)站大流量,首先要確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量。
普通的P4服務(wù)器一般最多能支持每天10萬獨立IP,如果訪問量比這個還要大,那么必須首先配置一臺更高性能的專用服務(wù)器才能解決問題,否則怎么優(yōu)化都不可能徹底解決性能問題。
2、網(wǎng)站靜態(tài)化
服務(wù)器的負(fù)載過大,一個重要的原因是CPU負(fù)荷過大,降低服務(wù)器CPU的負(fù)荷,才能夠有效打破瓶頸。而使用靜態(tài)頁面可以使得CPU的負(fù)荷最小化。
3、改善數(shù)據(jù)庫結(jié)構(gòu)
對于某些頻繁更新的網(wǎng)站來說,無法通過網(wǎng)站靜態(tài)化來滿足其功能,也就無法避免對數(shù)據(jù)庫的訪問??梢試L試優(yōu)化數(shù)據(jù)庫的查詢SQL.避免使用Select * from這樣的語句,每次查詢只返回自己需要的結(jié)果,避免短時間內(nèi)的大量SQL查詢。
4、禁止外部盜鏈
外部網(wǎng)站的圖片或者文件盜鏈往往會帶來大量的負(fù)載壓力,因此應(yīng)該嚴(yán)格限制外部對于自身的圖片或者文件盜鏈。
目前可以簡單地通過refer來控制盜鏈,Apache自己就可以通過配置來禁止盜鏈,IIS也有一些第三方的ISAPI可以實現(xiàn)同樣的功能。
目前蓄意偽造refer盜鏈的還不多,可以先不去考慮,或者使用非技術(shù)手段來解決,比如在圖片上增加水印。
5、控制大文件的下載
大文件的下載會占用很大的流量,并且對于非SCSI硬盤來說,大量文件下載會消耗CPU,使得網(wǎng)站響應(yīng)能力下降。因此,盡量不要提供超過2M的大文件下載, 如果需要提供,建議將大文件放在另外一臺服務(wù)器上。
目前有不少免費的Web 2.0網(wǎng)站提供圖片分享和文件分享功能,因此可以盡量將圖片和文件上傳到這些分享網(wǎng)站。
6、使用不同主機分流主要流量
將文件放在不同的主機上,提供不同的鏡像供用戶下載。比如如果覺得RSS文件占用流量大,那么使用FeedBurner或者FeedSky等服務(wù)將RSS輸出放在其他主機上,這樣別人訪問的流量壓力就大多集中在FeedBurner的主機上,RSS就不占用太多資源了
7、使用流量分析統(tǒng)計軟件
在網(wǎng)站上安裝一個流量分析統(tǒng)計軟件,可以即時知道哪些地方耗費了大量流量,哪些頁面需要再進行優(yōu)化,因此解決流量問題還需要進行精確的統(tǒng)計分析才可以。