分類  >  Web前端 >

《構建高性能Web站點》札記:5 web組件分離

tags:    時間:2013-12-10 08:56:52
《構建高性能Web站點》筆記:5 web組件分離
讓你的網站的不同組件使用不同的域名 並且/或者 使用不同的伺服器,如
www.glasswall.org          #信息、宣傳相關的應用, 伺服器名home
bbs.glasswall.org          #論壇應用, 伺服器名bbs
image.static-glasswall.org    #圖片,伺服器名static
js.static-glasswall.org       #javascript,伺服器名static
html.static-glasswall.org     #靜態html,伺服器名static

假設首頁 /index既包含動態內容,又包含圖片和js,使用上述方案有什麼好處?

1.不同域名,可以提高瀏覽器下載的併發數。 一個瀏覽器,對同一個域名只能同時下載5、6個組件;現在域名分開了,瀏覽器可以同時下載5、6個圖片和5、6個js, 併發能力迅速翻倍
2.不需要cookie的組件採用獨立域名,避免不必要的cookie發送。你可以讓動態內容發送的cookie只使用glasswall.org域,瀏覽器在請求*.static-glasswall.org時就不會發送cookie;這樣可以減少http header的大小
3.使用不同的硬軟體伺服器,以適應不同應用的特徵;經過恰當的組合,可以獲得最理想的總體請求時間或總體成本控制。 比如bbs伺服器需要比較好的cpu/內存,而static伺服器則需要比較好的帶寬和磁碟,以及配置了非阻塞I/O的apache httpd和反向代理緩存。一台cpu強的機器 + 一台磁碟好的機器, 總價格小於兩台 cpu/磁碟都強的機器


不同類型的內容,使用不同的優化方案
1.圖片
  a.一個頁面圖片多而小,則可以使用長連接,避免頻繁打開建立連接
  b.圖片內容一般不怎麼變,所以Expires可以設得很大,以充分利用瀏覽器緩存

2.css/js: 變化頻率比較小,所以Expires可以設得很大; 當真的發生變化時,可以給css的url加上新的版本號或時間戳,使瀏覽器原來緩存的內容失效

3.大文件下載
  a.伺服器要接入高速寬頻
  b.磁碟有較好的并行能力
  c.web伺服器可以打開linux sendfile選項

推薦閱讀文章

Bookmark the permalink ,來源:互聯網