1、提升服務器併發處理能力前端
咱們老是但願一臺服務器在單位時間內能處理的請求越多越好,這也成了web服務器的能力高低的關鍵所在。服務器之因此能夠同時處理多個請求,在於操做系統經過多執行流體系設計,使得多個任務能夠輪流使用系統資源,這些資源包括CPU、內存以及I/O等。這就須要選擇一個合適的併發策略來合理利用這些資源,從而提升服務器的併發處理能力。這些併發策略更多的應用在apache、nginx、lighttpd等底層web server軟件中。nginx
2、Web組件分離web
這裏所說的web組件是指web服務器提供的全部基於URL訪問的資源,包括動態內容,靜態網頁,圖片,樣式表,腳本,視頻等等。這些資源在文件大小,文件數量,內容更新頻率,預計併發用戶數,是否須要腳本解釋器等方面有着很大的差別,對不一樣特性資源採用能充分發揮其潛力的優化策略,能極大的提升web站點的性能。例如:將圖片部署在獨立的服務器上併爲其分配獨立的新域名,對靜態網頁使用epoll模型能夠在大併發數狀況下吞吐率保持穩定。數據庫
3、數據庫性能優化和擴展。apache
Web服務器軟件在數據庫方面作的優化主要是減小訪問數據庫的次數,具體作法就是使用各類緩存方法。也能夠從數據庫自己入手提升其查詢性能,這涉及到數據庫性能優化方面的知識本文不做討論。另外也能夠經過主從複製,讀寫分離,使用反向代理,寫操做分離等方式來擴展數據庫規模,提高數據庫服務能力。後端
4、Web負載均衡及相關技術瀏覽器
負載均衡是web站點規模水平擴展的一種手段,實現負載均衡的方法有好幾種包括基於HTTP重定向的負載均衡,DNS負載均衡,反向代理負載均衡,四層負載均衡等等。緩存
對這些負載均衡方法作簡單的介紹:基於HTTP重定向的負載均衡利用了HTTP重定向的請求轉移和自動跳轉功能來實現負載均衡,咱們熟悉的鏡像下載就使用這種負載均衡。DNS負載均衡是指在一個DNS服務器中爲同一個主機名配置多個IP地址,在應答DNS查詢時返回不一樣的解析結果將客戶端的訪問引到不一樣的機器上,使得不一樣的客戶端訪問不一樣的服務器,從而達到負載均衡的目的。反向代理負載均衡也叫七層負載均衡,這是由於反向代理服務器工做在TCP 七層結構的第七層(應用層),它經過檢查流經的HTTP報頭,根據報頭內的信息來執行負載均衡任務。四層負載均衡是基於NAT技術的負載均衡,它將一個 Internet上合法註冊的IP地址映射爲多個內部服務器的IP地址,對每次TCP鏈接請求動態使用其中一個內部IP地址,達到負載均衡的目的。此外,還有工做在數據鏈路層(第二層)的直接路由方式下的負載均衡,它經過修改數據包目標MAC地址來實現。以及,基於IP隧道的負載均衡,在這種方式下能夠將實際服務器根據須要部署在不一樣的地域,並根據就近訪問的原則來轉移請求,CDN服務即是基於IP隧道技術來實現的。安全
Web負載均衡在擴展web服務器規模的同時也給web站點性能優化提供了一個更大更復雜也更靈活自由的平臺,基於該平臺性能優化的策略包括共享文件系統,內容分發與同步,分佈式文件系統,分佈式計算,分佈式緩存等等。性能優化
5、web緩存技術
web緩存技術被認爲是減輕服務器負載、下降網絡擁塞、加強萬維網可擴展性的有效途徑,其基本思想是利用客戶訪問的時間局部性 (Temporal Locality)原理,將客戶訪問過的內容在Cache中存放一個副本,當該內容下次被訪問時,沒必要鏈接到駐留網站或從新計算生成,而是由Cache中保留的副本提供。Web緩存能夠帶來以下的好處:
(1) 減小網絡流量,從而減輕網絡擁塞;這是由於緩存避免了一部分HTTP請求。
(2) 下降客戶訪問延遲,其主要緣由有:①已緩存的內容,客戶能夠緩存獲取而不是從服務器獲取或從新計算生成,從而減少了傳輸延遲縮短了響應時間;②沒有被緩存的內容因爲網絡擁塞及服務器負載的減輕而能夠較快地被客戶獲取;
(3) 因爲客戶的部分或者所有請求內容能夠從經過緩存獲取,從而減輕了遠程服務器負載。
(4) 若是因爲服務器故障或網絡故障形成服務器沒法響應客戶請求,客戶能夠從緩存中獲取緩存的內容副本,使得web站點服務的魯棒性(Robustness)獲得了增強。
能夠看出web緩存能給web站點帶可觀的性能提高。其實在用戶發出請求到一幅完整的網頁呈如今用戶面前這一過程當中緩存無處不在,下面是web性能優化時經常使用的緩存技術,你會發現緩存被普遍應用在各個環節。
瀏覽器緩存:瀏覽器通常會在用戶文件系統中建立一個目錄,用於存放緩存文件,並給每一個緩存文件打上必要的標記,好比過時時間等。這些標記主要用於瀏覽器和服務器之間的緩存協商。
Web服務器緩存:一個URL在一段較長時間內對應一個惟一的響應內容,好比靜態內容或者更新不太頻繁的動態內容,web服務器可將響應內容緩存起來,下次web服務器即可以在收到請求後當即拿出事先緩存好的響應內容並返回給瀏覽器。
代理服務器緩存:暴露在互聯網中與後端的web服務器經過內部網絡相連的前端服務器稱爲反向代理服務器,創建在反向代理服務器上的緩存稱爲反向代理緩存。暴露在互聯網中與後端的web客戶端經過內部網絡相連的前端服務器稱爲正向代理服務器,創建在正向代理服務器上的緩存稱爲正向代理緩存。代理服務器緩存位於客戶端和web服務器之間,能夠將它看作兩者之間的一箇中繼站。它的存在能夠改善客戶端的訪問速度、提高web server的服務能力、安全性等等。