解決網(wǎng)站大流量問題的策略
發(fā)布時(shí)間:2013-02-07 閱讀數(shù): 次 來源:網(wǎng)樂原科技
個(gè)人博客由于訪問量過大而引起服務(wù)器性能問題,這是很多人的煩惱,有人使用取消RSS的方法來解決問題,顯然是下錯藥,那么對于網(wǎng)站大流量帶來的問題,正確的解決方法應(yīng)該是什么呢?下面是我個(gè)人總結(jié)的一些經(jīng)驗(yàn),供大家參考。
首先,確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量。
普通的P4服務(wù)器一般最多能支持每天10萬獨(dú)立IP,如果訪問量比這個(gè)還要大,那么必須首先配置一臺更高性能的專用服務(wù)器才能解決問題,否則怎么優(yōu)化都不可能徹底解決性能問題。
其次,優(yōu)化數(shù)據(jù)庫訪問。
前臺實(shí)現(xiàn)完全的靜態(tài)化當(dāng)然最好,可以完全不用訪問數(shù)據(jù)庫,不過對于頻繁更新的網(wǎng)站,靜態(tài)化往往不能滿足某些功能。
緩存技術(shù)就是另一個(gè)解決方案,就是將動態(tài)數(shù)據(jù)存儲到緩存文件中,動態(tài)網(wǎng)頁直接調(diào)用這些文件,而不必再訪問數(shù)據(jù)庫,WordPress和Z-Blog都大量使用這種緩存技術(shù)。我自己也寫過一個(gè)Z-Blog的計(jì)數(shù)器插件,也是基于這樣的原理。
如果確實(shí)無法避免對數(shù)據(jù)庫的訪問,那么可以嘗試優(yōu)化數(shù)據(jù)庫的查詢SQL.避免使用Select * from這樣的語句,每次查詢只返回自己需要的結(jié)果,避免短時(shí)間內(nèi)的大量SQL查詢。
第三,禁止外部的盜鏈。
外部網(wǎng)站的圖片或者文件盜鏈往往會帶來大量的負(fù)載壓力,因此應(yīng)該嚴(yán)格限制外部對于自身的圖片或者文件盜鏈,好在目前可以簡單地通過refer來控制盜鏈,Apache自己就可以通過配置來禁止盜鏈,IIS也有一些第三方的ISAPI可以實(shí)現(xiàn)同樣的功能。當(dāng)然,偽造refer也可以通過代碼來實(shí)現(xiàn)盜鏈,不過目前蓄意偽造refer盜鏈的還不多,可以先不去考慮,或者使用非技術(shù)手段來解決,比如在圖片上增加水印。
第四,控制大文件的下載。
大文件的下載會占用很大的流量,并且對于非SCSI硬盤來說,大量文件下載會消耗CPU,使得網(wǎng)站響應(yīng)能力下降。因此,盡量不要提供超過2M的大文件下載,如果需要提供,建議將大文件放在另外一臺服務(wù)器上。
第五,使用不同主機(jī)分流主要流量
將文件放在不同的主機(jī)上,提供不同的鏡像供用戶下載。比如如果覺得RSS文件占用流量大,那么使用FeedBurner或者FeedSky等服務(wù)將RSS輸出放在其他主機(jī)上,這樣別人訪問的流量壓力就大多集中在FeedBurner的主機(jī)上,RSS就不占用太多資源了。
第六,使用流量分析統(tǒng)計(jì)軟件。
在網(wǎng)站上安裝一個(gè)流量分析統(tǒng)計(jì)軟件,可以即時(shí)知道哪些地方耗費(fèi)了大量流量,哪些頁面需要再進(jìn)行優(yōu)化,因此,解決流量問題還需要進(jìn)行精確的統(tǒng)計(jì)分析才可以。我推薦使用的流量分析統(tǒng)計(jì)軟件是Google Analytics(Google分析)。