PHP如何解決網站大流量與高併發的問題
阿新 • • 發佈:2019-01-08
普通的P4伺服器一般最多能支援每天10萬獨立IP,如果訪問量比這個還要大,那麼必須首先配置一臺更高效能的專用伺服器才能解決問題
首先,確認伺服器硬體是否足夠支援當前的流量。
普通的P4伺服器一般最多能支援每天10萬獨立IP,如果訪問量比這個還要大,
那麼必須首先配置一臺更高效能的專用伺服器才能解決問題
,否則怎麼優化都不可能徹底解決效能問題。
其次,優化資料庫訪問。
前臺實現完全的靜態化當然最好,可以完全不用訪問資料庫,不過對於頻繁更新的網站,
靜態化往往不能滿足某些功能。
快取技術就是另一個解決方案,就是將動態資料儲存到快取檔案中,動態網頁直接呼叫
這些檔案,而不必再訪問資料庫,WordPress和Z-Blog都大量使用這種快取技術。我
自己也寫過一個Z-Blog的計數器外掛,也是基於這樣的原理。
如果確實無法避免對資料庫的訪問,那麼可以嘗試優化資料庫的查詢SQL.避免使用
Select * from這樣的語句,每次查詢只返回自己需要的結果,避免短時間內的大
量SQL查詢。
第三,禁止外部的盜鏈。
外部網站的圖片或者檔案盜鏈往往會帶來大量的負載壓力,因此應該嚴格限制外部對
於自身的圖片或者檔案盜鏈,好在目前可以簡單地通過refer來控制盜鏈,Apache自
己就可以通過配置來禁止盜鏈,IIS也有一些第三方的ISAPI可以實現同樣的功能。當
然,偽造refer也可以通過程式碼來實現盜鏈,不過目前蓄意偽造refer盜鏈的還不多,
可以先不去考慮,或者使用非技術手段來解決,比如在圖片上增加水印。
第四,控制大檔案的下載。
大檔案的下載會佔用很大的流量,並且對於非SCSI硬碟來說,大量檔案下載會消耗
CPU,使得網站響應能力下降。因此,儘量不要提供超過2M的大檔案下載,如果需要
提供,建議將大檔案放在另外一臺伺服器上。
第五,使用不同主機分流主要流量
將檔案放在不同的主機上,提供不同的映象供使用者下載。比如如果覺得RSS檔案佔用
流量大,那麼使用FeedBurner或者FeedSky等服務將RSS輸出放在其他主機上,這
樣別人訪問的流量壓力就大多集中在FeedBurner的主機上,RSS就不佔用太多資源了。
第六,使用流量分析統計軟體。
在網站上安裝一個流量分析統計軟體,可以即時知道哪些地方耗費了大量流量,哪些頁
面需要再進行優化,因此,解決流量問題還需要進行精確的統計分析才可以。我推薦使
用的流量分析統計軟體是Google Analytics(Google分析)。我使用過程中感覺其
效果非常不錯,稍後我將詳細介紹一下Google Analytics的一些使用常識和技巧。
首先,確認伺服器硬體是否足夠支援當前的流量。
普通的P4伺服器一般最多能支援每天10萬獨立IP,如果訪問量比這個還要大,
那麼必須首先配置一臺更高效能的專用伺服器才能解決問題
,否則怎麼優化都不可能徹底解決效能問題。
其次,優化資料庫訪問。
前臺實現完全的靜態化當然最好,可以完全不用訪問資料庫,不過對於頻繁更新的網站,
靜態化往往不能滿足某些功能。
快取技術就是另一個解決方案,就是將動態資料儲存到快取檔案中,動態網頁直接呼叫
這些檔案,而不必再訪問資料庫,WordPress和Z-Blog都大量使用這種快取技術。我
自己也寫過一個Z-Blog的計數器外掛,也是基於這樣的原理。
如果確實無法避免對資料庫的訪問,那麼可以嘗試優化資料庫的查詢SQL.避免使用
Select * from這樣的語句,每次查詢只返回自己需要的結果,避免短時間內的大
量SQL查詢。
第三,禁止外部的盜鏈。
外部網站的圖片或者檔案盜鏈往往會帶來大量的負載壓力,因此應該嚴格限制外部對
於自身的圖片或者檔案盜鏈,好在目前可以簡單地通過refer來控制盜鏈,Apache自
己就可以通過配置來禁止盜鏈,IIS也有一些第三方的ISAPI可以實現同樣的功能。當
然,偽造refer也可以通過程式碼來實現盜鏈,不過目前蓄意偽造refer盜鏈的還不多,
可以先不去考慮,或者使用非技術手段來解決,比如在圖片上增加水印。
第四,控制大檔案的下載。
大檔案的下載會佔用很大的流量,並且對於非SCSI硬碟來說,大量檔案下載會消耗
CPU,使得網站響應能力下降。因此,儘量不要提供超過2M的大檔案下載,如果需要
提供,建議將大檔案放在另外一臺伺服器上。
第五,使用不同主機分流主要流量
將檔案放在不同的主機上,提供不同的映象供使用者下載。比如如果覺得RSS檔案佔用
流量大,那麼使用FeedBurner或者FeedSky等服務將RSS輸出放在其他主機上,這
樣別人訪問的流量壓力就大多集中在FeedBurner的主機上,RSS就不佔用太多資源了。
第六,使用流量分析統計軟體。
在網站上安裝一個流量分析統計軟體,可以即時知道哪些地方耗費了大量流量,哪些頁
面需要再進行優化,因此,解決流量問題還需要進行精確的統計分析才可以。我推薦使
用的流量分析統計軟體是Google Analytics(Google分析)。我使用過程中感覺其
效果非常不錯,稍後我將詳細介紹一下Google Analytics的一些使用常識和技巧。