內容來源:http://blog.csdn.net/hdhai9451/article/details/44174559html
一、html靜態化web
例如1--門戶和信息發佈類型的網站:對於大量內容而且頻繁更新的網站,咱們可使用內容管理系統cms,例如新聞頻道,能夠經過信息錄入實現最簡單的自動生成靜態頁面。同時還能具有頻道管理、權限管理、自動抓取等功能。算法
例如2--社區類型的網站:對於交互性很高的論壇網站來講,儘量靜態化也是提升性能的必要手段,即增刪改後當即生成對應的靜態文件。(詳情查看 關於Discuz! X3.2 URL 靜態化)例如像貓撲的大雜燴和網易社區就是使用了這個策略。數據庫
例如3--頻繁使用數據庫查詢:有些信息大量被前臺程序調用,可是更新頻率很小,能夠考慮將這部份內容進行後臺更新的時候,進行靜態化。緩存
二、圖片服務器分離服務器
對於web服務器來講,不論是Apache、IIS仍是其餘容器,圖片是最消耗資源的,因而咱們有必要將圖片與頁面進行分離,提供一臺獨立的圖片服務器。cookie
三、數據庫集羣、庫表散列網絡
好比用戶表,按照用戶ID進行表散列,這樣就可以低成本的提高系統的性能而且有很好的擴展性。session
sohu的論壇就是採用了這樣的架構,將論壇的用戶、設置、帖子等信息進行數據庫分離,而後對帖子、用戶按照板塊和ID進行散列數據庫和表,最終能夠在配置文件中進行簡單的配置便能讓系統隨時增長一臺低成本的數據庫進來補充系統性能。架構
四、緩存
1.架構方面的緩存:Apache提供了本身的緩存模塊,也可使用外加的緩存模塊。
2.網站程序開發方面的緩存:
使用Asp.Net緩存;
使用Remoting Singleton緩存;
使用內存映射文件;
使用SQL Server緩存;
使用靜態變量緩存;
使用Asp.net 會話狀態(Session State);
使用Asp.net客戶端緩存和狀態;
使用Internet Explorer緩存。
例如:使用asp.net session state
你可使用基於HttpSessionState對象的asp.net session state來緩存單個用戶的會話狀態信息。它解決了asp中會話狀態的不少限制,包括:
·asp session要求客戶端接受cookies,不然就不能使用session;而asp.net能夠配置爲不使用cookie;
·
五、鏡像
打個比方說,咱們要作一個提供軟件下載的網站,由於你們使用的ISP不一樣(有用電信的,也有使用網通的,也有鐵通的),若是使用電信的用戶訪問網通的服務器就會很慢,一樣使用網通的用戶訪問電信的服務器速度也慢。爲了讓使用不一樣ISP的用戶的下載速度都能快,咱們能夠把主服務器放到電信的線路上,同時在網通的線路上架設鏡像服務器1,鐵桶的線路上架設鏡像服務器2。這樣你們訪問位於和本身相同ISP線路上的服務器去下載速度就快了。
另:做備份的時候也會使用到鏡像服務器。如:大部分網遊的服務器都有鏡像,這樣當1臺服務器出現故障的時候玩家可使用另外一臺服務器來進行遊戲。
六、 負載均衡
七、最新:CDN加速技術(Content Delivery Network:內容分發網絡)
通俗理解就是網站加速,CPU均衡負載,能夠解決跨運營商,跨地區,服務器負載能力太低,寬帶過少等帶來的網站打開速度慢等問題。
CDN=更智能的鏡像+緩存+流量導流。於是,CDN能夠明顯提升Internet網絡中信息流動的效率。
CDN的實例:
舉個例子來講,當某用戶訪問網站時,網站會利用全球負載均衡技術,將用戶的訪問指向到距離用戶最近的正常工做的 緩存服務器上,直接響應用戶的請求。
經過用戶定位算法和服務器健康檢測算法綜合後的數據,能夠將用戶的請求就近定向到分佈在網絡「邊緣」的緩存服務器上,保證用戶的訪問能獲得更及時可靠的響應。