大型網站提速方案

大型網站提速方案

如何斷定一個網站是大型網站

    1. 高訪問就是大網站?仍是大流量是大型網站? 
      愛站:http://www.aizhan.com/ 
      站長工具:http://tool.chinaz.com/ 
      高訪問網站:https://www.hao123.comphp

    2. 經過幾個參數來斷定一個大型網站css

      a. PV(page views) :一個網站內全部頁面,24小時內訪問次數的總和。通常在100w,1000w以上html

      b. UV(unique visitor):一個網站24小時內的獨立訪問用戶。通常幾十萬以上linux

      c. IP(獨立IP):一個網站24小時內訪問的IP數,在考慮校園網、局域網的時候,UV數通常略大於IP數(局域網經過一個網關上網 
      多個用戶只會記錄一個獨立IP)nginx

      總結:PV > UV > IPweb

    3. 大型網站帶來的問題redis

      a. 高併發:通常是1s內同時訪問一個網站的數量sql

      b. 大流量:大量的用戶訪問網站,流量會變得很大mongodb

      c. 大數據:在訪問量巨大的同時,帶來的就是大量數據(G、T級別)的檢索問題,如何在衆多數據中檢索出須要的數據數據庫

    4. 解決方案

      a. 高併發能夠使用 分層來解決(負載均衡)

      1. 硬件:f5(優勢:立竿見影;缺點:價格昂貴,20w左右)
      2. 軟件:nginx(web服務器,負載均衡器),lvs
      3. nginx: http://www.nginx.cn/ http://tengine.taobao.org/ http://nginx.org/
      4. lvs(章文嵩): http://zh.linuxvirtualserver.org/
      5. 問題:什麼是C10K問題?
      6. 負載均衡的策略:1. 輪詢 2. NAT 3. 智能DNS
      7. 注意:對Apache實現了分流,但對Mysql,如何解決?同時,如何保證Apache,負載均衡器的高可用?
      8. 高可用能夠使用冗餘技術實現,添加一個監控服務器
      9. 軟件:keepalive

      b. 大流量能夠使用以下方案解決

      1. 1. 代碼壓縮 查看HTTP請求,Apache對主體數據進行壓縮,開啓Apachedeflate模塊
      2. > http://blog.csdn.net/cctv_hu/article/details/6018942
      3. > http://www.webkaka.com/tutorial/server/2015/021013/
      4. 2. 合併文件,減小HTTP請求(js css),css圖片背景的圖片精靈(減小請求)
      5. > 合併工具: http://tool.oschina.net/jscompress?type=3
      6. 3. 使用CDN技術加載靜態資源
      7. > 加速CDN服務: http://www.bootcdn.cn/
      8. 4. 將服務分散,圖片服務器,電腦模塊。將不一樣的模塊部署到不一樣的服務器上面 (上傳插件配置上傳服務器地址)
      9. > PHP FTP 函數:http://www.w3school.com.cn/php/php_ref_ftp.asp
      10. 5. 升級帶寬(100M帶寬一年40w左右)

      c. 大數據能夠使用緩存技術實現

      1. 1. 磁盤緩存(靜態化):
      2. > 1. 真靜態:在效率上,生成真實的html文件,將數據從數據庫取出以後,生成的靜態html保存到磁盤上面,直接訪問靜態頁面就好。不用訪問數據庫,減輕數據庫的壓力
      3. > 2. 僞靜態:在形式上,利用Apache的重寫模塊來實現 動態的url 轉換成靜態的url,便於seo(搜索引擎優化),能夠防止sql注入
      4. 例如:
      5. 動態網站:http://www.php.com?new.php&type=sport&id=12
      6. 對應的靜態網站:http://www.php.com?new-sport-id12.html
      7. 2. 內存緩存(Nosql技術,memcacheredismongodb):將Mysql取出的數據保存在內存服務器裏面,下次請求的時候直接訪問內存服務器
      8. 3. 數據庫優化:
      9. 1. 設計上知足三範式
      10. 2. 字段上使用合適的屬性
      11. 3. 合適的使用索引
      12. 4. 分區和分表
      13. 5. 主從複製(讀寫分離)
      14. 6. 硬件升級(scale up、還有scale out
      15. 7. sphinx存儲引擎的使用

(本文轉自 superve.leanote.com/post/大型網站提速方案)

相關文章
相關標籤/搜索