<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    常用負載均衡的工具講解及說明

    VSole2021-12-10 07:50:05

    常用負載均衡的工具

    Nginx、LVS、HAProxy、 F5

    負載均衡即是代理服務器將接收的請求均衡的分發到各服務器中,負載均衡主要解決網絡擁塞問題,提高服務器響應速度,服務就近提供,達到更好的訪問質量,減少后臺服務器大并發壓力。

    什么是 Nginx ?

    Nginx ,是一個 Web 服務器和反向代理服務器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 協議。

    Nginx負載均衡的原理是什么?

    客戶端向反向代理發送請求,接著反向代理根據某種負載機制轉發請求至目標服務器(這些服務器都運行著相同的應用),并把獲得的內容返回給客戶端,期中,代理請求可能根據配置被發往不同的服務器。

    Nginx的優點:

    • 高并發連接:官方測試Nginx能夠支撐5萬并發連接,實際測試可達到3萬左右,每天可以處理億次訪問量;原因是:采用最新epoll(linux2.6內核)和kqueue(freebsd)網絡I/O模型,而Apache采用的是傳統的select模型
    • 內存消耗小
    • Nginx支持負載均衡
    • Nginx支持反向代理
    • 成本低廉

    Nginx正向代理

    一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求并指定目標(原始服務器)然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端。客戶端才能使用正向代理。

    正向代理總結就一句話:代理端代理的是客戶端

    Nginx反向代理

    反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求,發給內部網絡上的服務器并將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。

    反向代理總結就一句話:代理端代理的是服務端

    Nginx 可以用于七層負載均衡。

    但是對于一些大的網站,一般會采用 DNS+四層負載+七層負載的方式進行多層次負載均衡。

    LVS是什么?

    LVS(Linux Virtual Server),也就是 Linux 虛擬服務器,是一個由章文嵩博士發起的自由軟件項目, 是中國國內最早出現的自由軟件項目之一。

    LVS集群采用哪三層結構?

    一般來說,LVS集群采用三層結構,其主要組成部分為:

    A、負載調度器(load balancer),它是整個集群對外面的前端機,負責將客戶的請求發送到一組服務器上執行,而客戶認為服務是來自一個IP地址(我們可稱之為虛擬IP地址)上的。

    B、服務器池(server pool),是一組真正執行客戶請求的服務器,執行的服務有WEB、MAIL、FTP和DNS等。

    C、共享存儲(shared storage),它為服務器池提供一個共享的存儲區,這樣很容易使得服務器池擁有相同的內容,提供相同的服務。

    LVS優點:

    1. 開源,免費;
    2. 在網上能找到一些相關技術資源;
    3. 具有軟件負載均衡的一些優點;

    LVS 由哪2部分程序組成?

    包括 ipvs 和 ipvsadm。

    1. ipvs(ip virtual server):一段代碼工作在內核空間,叫ipvs,是真正生效實現調度的代碼。
    2. ipvsadm:另外一段是工作在用戶空間,叫ipvsadm,負責為ipvs內核框架編寫規則,定義誰是集群服務,而誰是后端真實的服務器(Real Server)

    LVS 有幾種模式?

    NAT模式、 TUN 模式、 DR 模式

    NAT模式優缺點:

    因為請求與應答都要經過lvs服務器,所以訪問量大的話lvs會形成瓶頸,一般要求10-20臺節點。

    每臺節點服務器的網關地址必須是lvs服務器的內網地址。

    NAT模式支持對IP地址和端口進行轉換。即用戶請求的端口和真實服務器的端口可以不一致。

    LVS-TUN模式:

    它的連接調度和管理與VS/NAT中的一樣,利用ip隧道技術的原理,即在原有的客戶端請求包頭中再加一層IP Tunnel的包頭ip首部信息,不改變原來整個請求包信息,只是新增了一層ip首部信息,再利用路由原理將請求發給RS server,不過要求的是所有的server必須支持”IPTunneling”或者”IP Encapsulation”協議。

    LVS-DR模式原理:

    Director Server作為群集的訪問入口,但不作為網關使用,后端服務器池中的Real Server與Director Server在同一個物理網絡中,發送給客戶機的數據包不需要經過Director Server。為了響應對整個群集的訪問,DS與RS都需要配置有VIP地址。

    LVS十種調度算法介紹

    1、輪叫調度(Round Robin)(簡稱rr)

    調度器通過“輪叫”調度算法將外部請求按順序輪流分配到集群中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的連接數和系統負載。

    2、加權輪叫(Weighted Round Robin)(簡稱wrr)

    調度器通過“加權輪叫”調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器能處理更多的訪問流量。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。

    3、最少鏈接(Least Connections)(LC)

    調度器通過“最少連接”調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上。如果集群系統的真實服務器具有相近的系統性能,采用“最小連接”調度算法可以較好地均衡負載。

    4、加權最少鏈接(Weighted Least Connections)(WLC)

    在集群系統中的服務器性能差異較大的情況下,調度器采用“加權最少鏈接”調度算法優化負載均衡性能,具有較高權值的服務器將承受較大比例的活動連接負載。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。

    5、基于局部性的最少鏈接(Locality-Based Least Connections)(LBLC)

    “基于局部性的最少鏈接”調度算法是針對目標IP地址的負載均衡,目前主要用于Cache集群系統。該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于一半的工作負載,則用“最少鏈接” 的原則選出一個可用的服務器,將請求發送到該服務器。

    6、帶復制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)(LBLCR)

    “帶復制的基于局部性最少鏈接”調度算法也是針對目標IP地址的負載均衡,目前主要用于Cache集群系統。它與LBLC算法的不同之處是它要維護從一個目標 IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射。該算法根據請求的目標IP地址找出該目標IP地址對應的服務器組,按“最小連接”原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器;若服務器超載,則按“最小連接”原則從這個集群中選出一臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低復制的程度。

    7、目標地址散列(Destination Hashing)(DH)

    “目標地址散列”調度算法根據請求的目標IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

    8、源地址散列(Source Hashing)(SH)

    “源地址散列”調度算法根據請求的源IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

    9、最短的期望的延遲(Shortest Expected Delay Scheduling SED)(SED)

    基于wlc算法。這個必須舉例來說了

    ABC三臺機器分別權重123 ,連接數也分別是123。那么如果使用WLC算法的話一個新請求進入時它可能會分給ABC中的任意一個。使用sed算法后會進行這樣一個運算

    A(1+1)/1

    B(1+2)/2

    C(1+3)/3

    根據運算結果,把連接交給C 。

    10、最少隊列調度(Never Queue Scheduling NQ)(NQ)

    無需隊列。如果有臺 realserver的連接數=0就直接分配過去,不需要在進行sed運算

    LVS 主要用來做四層負載和七層負載

    所謂四層就是基于IP+端口的負載均衡,主要代表有lvs。

    七層負載也稱內容交換,就是基于URL等應用層信息的負載均衡,主要代表有nginx。

    HAProxy是什么?

    HAProxy是一個使用C語言編寫的自由及開放源代碼軟件[1],其提供高可用性、負載均衡,以及基于TCP和HTTP的應用程序代理。

    HAProxy特別適用于那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。HAProxy運行在當前的硬件上,完全可以支持數以萬計的并發連接。并且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。

    HAProxy實現了一種事件驅動單一進程模型,此模型支持非常大的并發連接數。多進程或多線程模型受內存限制 、系統調度器限制以及無處不在的鎖限制,很少能處理數千并發連接。事件驅動模型因為在有更好的資源和時間管理的用戶空間(User-Space) 實現所有這些任務,所以沒有這些問題。此模型的弊端是,在多核系統上,這些程序通常擴展性較差。這就是為什么他們必須進行優化以 使每個CPU時間片(Cycle)做更多的工作。

    haproxy 配置中分成五部分內容有哪些?

    • global:設置全局配置參數,屬于進程的配置,通常是和操作系統相關。
    • defaults:配置默認參數,這些參數可以被用到frontend,backend,Listen組件;
    • frontend:接收請求的前端虛擬節點,Frontend可以更加規則直接指定具體使用后端的backend;
    • backend:后端服務集群的配置,是真實服務器,一個Backend對應一個或者多個實體服務器;
    • Listen :frontend和backend的組合體。

    HAProxy 是一個使用 C 語言編寫的自由及開放源代碼軟件,其提供高可用性、負載均衡,以及基于 TCP 和 HTTP 的應用程序代理。

    Haproxy 主要用來做七層負載均衡。

    F5是什么?

    F5 Networks(納斯達克: FFIV) ,全球領先的應用交付網絡(ADN)領域的廠商 ,創建于1996年 ,總部位于美國西雅圖市 , F5為全球大型企業、運營商、政府與消費品牌提供更加快速、安全以及智能的應用 ,通過交付云與安全解決方案 ,F5幫助企業在不損失速度與管理性的同時享有它們所需的應用架構。

    F5負載均衡功能有哪些?

    1.多鏈路的負載均衡和冗余

    2.防火墻負載均衡

    3.服務器負載均衡

    4.系統高可用性

    5.高度的安全性

    7.系統管理

    F5的核心就是Virtual Server。


    負載均衡lvs
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    NAT模式支持對IP地址和端口進行轉換。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。
    B 站高可用架構實踐
    2022-05-05 22:07:44
    通過改進負載均衡算法,引入懲罰值的方式,慢慢放入流量進行預熱。所以過載保護的目的是為了自保。API 級別的重試需要考慮集群的過載情況。比如只允許 10% 的流量進行重試,Client 端做統計,當發現有 10% 都是重試,那么剩下的都拒絕掉。重試的統計圖和記錄 QPS 的圖分開。問題診斷的時候,可以知道它是來自流量重試導致的問題放大。超時大部分的故障都是因為超時控制不合理導致的。
    神器 Nginx 的學習手冊
    2022-02-23 07:35:52
    Nginx 是一個高性能的 HTTP 和反向代理服務器,特點是占用內存少,并發能力強,事實上 Nginx 的并發能力確實在同類型的網頁服務器中表現較好。 Nginx 專為性能優化而開發,性能是其最重要的要求,十分注重效率,有報告 Nginx 能支持高達 50000 個并發連接數。 01 Nginx 知識網結構圖 Nginx 的知識網結構圖如下:
    一招搞定 Nginx
    2022-03-07 08:25:33
    安裝PCRE庫,用于解析正則表達式yum?zlib壓縮和解壓縮依賴yum?SSL 安全的加密的套接字協議層,用于HTTP安全傳輸,也就是httpsyum?
    防范DDoS攻擊最主要的手段是加錢上高防,同時隱藏網站真實IP。做一個永不暴露真實IP的網站返回目錄既然不想暴露網站的真實IP,那么真實服務器前面至少套一層代理。對于普通的網站,使用CDN或者高防就足夠,業務量大的情況下才會用到SLB。例如使用CloudFlare的免費CDN服務,其回源IP可從?獲取,然后將其加入白名單,同時屏蔽其他IP:# 將cf ip地址放在 cf_ips.txt# 首先將cf的ip加入白名單while read -r linedo
    對Evilnum的運作進行了分析,該惡意軟件背后的APT集團此前曾對金融科技公司發起攻擊。盡管該惡意軟件至少從2018年起就被發現,之前也有文件記錄,但很少有關于其背后的組織及其運作方式的報道。 在本文中,我們將兩...
    VMware公司近日對其獨立的負載均衡器進行了升級,并將其與NSX-T虛擬網絡以及用于私有數據中心和公共云的安全軟件集成。他正在進行兩個項目涉及VMware虛擬網絡技術。VMware公司將繼續支持使用NSX-T中的負載均衡功能的客戶。否則,企業必須為未使用的服務器容量付費,以應對流量高峰。在此之前,該產品會存在配置錯誤,并將其應用于所有應用程序服務器。新產品將僅在主服務器中安裝配置更改。
    一般有運行nginx服務器的用戶組,nginx進程pid存放路徑,日志存放路徑,配置文件引入,允許生成worker process數等。#user administrator administrators; #配置用戶或者組,默認為nobody nobody。keepalive_requests 120;#單連接請求上限次數。
    在介紹Nginx的負載均衡實現之前,先簡單的說下負載均衡的分類,主要分為硬件負載均衡和軟件負載均衡 ,硬件負載均衡是使用專門的軟件和硬件相結合的設備,設備商會提供完整成熟的解決方案,比如F5,在數據的穩定性以及安全性來說非常可靠,但是相比軟件而言造價會更加昂貴;軟件的負載均衡以Nginx這類軟件為主,實現的一種消息隊列分發機制。
    IDC發布《2020年Q4中國應用交付市場跟蹤報告》,深信服應用交付AD以28.24%的市占率位列第一。值得一提的是,這也是中國IT廠商第一次在應用交付領域反超國外廠商F5。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类