1. 程式人生 > >高可用web框架

高可用web框架

服務 ria 隧道 開發 lin enter 客戶 tin pvs

  1. nginx

    1. nginx簡介

Nginx是一個自由、開源、高性能及輕量級的HTTP服務器及反轉代理服務器。Nginx以其高性能、穩定、功能豐富、配置簡單及占用系統資源少而著稱。

Nginx 超越 Apache 的高性能和穩定性,使得國內使用 Nginx 作為 Web 服務器的網站也越來越多.

技術分享圖片技術分享圖片

  1. 基礎功能

反向代理加速,簡單的負載均衡和容錯;

  1. 優勢

1、Nginx專為性能優化而開發,性能是其最重要的考量, 實現上非常註重效率 。有報告表明能支持高達 50,000 個並發連接數。

2、Nginx具有很高的穩定性。其它HTTP服務器,當遇到訪問的峰值,或者有人惡意發起慢速連接時,也很可能會導致服務器物理內存耗盡頻繁交換,失去響應,只能重啟服務器。

例如當前apache一旦上到200個以上進程,web響應速度就明顯非常緩慢了。而Nginx采取了分階段資源分配技術,使得它的CPU與內存占用率非常低。

3、nginx官方表示保持10,000個沒有活動的連接,它只占2.5M內存,就穩定性而言, nginx比其他代理服務器更勝一籌。

4、Nginx支持熱部署。它的啟動特別容易, 並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在不間斷服務的情況下,對軟件版本進行進行升級。

5、Nginx采用C進行編寫, 不論是系統資源開銷還是CPU使用效率都高很多。

  1. 安裝

見文檔

  1. keepalived

    1. 簡介

Keepalived

的作用是檢測web服務器的狀態,如果有一臺web服務器死機,或工作出現故障,Keepalived將檢測到,並將有故障的web服務器從系統中剔除,當web服務器工作正常後Keepalived自動將web服務器加入到服務器群中,這些工作全部自動完成,不需要人工幹涉,需要人工做的只是修復故障的web服務器。

  1. 作用

主要用作RealServer的健康狀態檢查以及LoadBalance主機和BackUP主機之間failover的實現。

技術分享圖片技術分享圖片

  1. lvs

    1. LVS是什麽

1、LVS的英文全稱是Linux Virtual Server,即Linux虛擬服務器。

2、它是我們國家的章文嵩博士的一個開源項目。

  1. LVS能幹什麽

  1. LVS主要用於多服務器的負載均衡。
  2. 它工作在網絡層,可以實現高性能,高可用的服務器集群技術。
  3. 它可把許多低性能的服務器組合在一起形成一個超級服務器。
  4. 它配置非常簡單,且有多種負載均衡的方法。
  5. 它穩定可靠,即使在集群的服務器中某臺服務器無法正常工作,也不影響整體效果。
  6. 可擴展性也非常好。

  1. nginx和lvs作對比的結果:

1、nginx工作在網絡的應用層,主要做反向代理;lvs工作在網絡層,主要做負載均衡。nginx也同樣能承受很高負載且穩定,但負載度和穩定度不及lvs。

2、nginx對網絡的依賴較小,lvs就比較依賴於網絡環境。

3、在使用上,一般最前端所采取的策略應是lvs。 nginx可作為lvs節點機器使用。

  1. 負載均衡機制

前面我們說了LVS是工作在網絡層。相對於其它負載均衡的解決辦法,它的效率是非常高的。LVS的通過控制IP來實現負載均衡。IPVS是其具體的實現模塊。IPVS的主要作用:安裝在Director Server上面,在Director Server虛擬一個對外訪問的IP(VIP)。用戶訪問VIP,到達Director Server,Director Server根據一定的規則選擇一個Real Server,處理完成後然後返回給客戶端數據。這些步驟產生了一些具體的問題,比如如何選擇具體的Real Server,Real Server如果返回給客戶端數據等等。IPVS為此有三種機制:

1. VS/NAT(Virtual Server via Network Address Translation),即網絡地址翻轉技術實現虛擬服務器。

當請求來到時,Diretor server上處理的程序將數據報文中的目標地址(即虛擬IP地址)改成具體的某臺Real Server,端口也改成Real Server的端口,然後把報文發給Real Server。Real Server處理完數據後,需要返回給Diretor Server,然後Diretor server將數據包中的源地址和源端口改成VIP的地址和端口,最後把數據發送出去。由此可以看出,用戶的請求和返回都要經過Diretor Server,如果數據過多,Diretor Server肯定會不堪重負。

技術分享圖片

2. VS/TUN(Virtual Server via IP Tunneling),即IP隧道技術實現虛擬服務器。

IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的數據報文能被封裝和轉發到另一個IP地址。IP隧道技術亦稱為IP封裝技術(IP encapsulation)。它跟VS/NAT基本一樣,但是Real server是直接返回數據給客戶端,不需要經過Diretor server,這大大降低了Diretor server的壓力。

3. VS/DR(Virtual Server via Direct Routing),即用直接路由技術實現虛擬服務器。

跟前面兩種方式,它的報文轉發方法有所不同,VS/DR通過改寫請求報文的MAC地址,將請求發送到Real Server,而Real Server將響應直接返回給客戶,免去了VS/TUN中的IP隧道開銷。這種方式是三種負載調度機制中性能最高最好的,但是必須要求Director Server與Real Server都有一塊網卡連在同一物理網段上。

技術分享圖片

高可用web框架