負載均衡 HA haproxy
- web架構
-
- 單機房架構
- 多機房架構
- 公有雲架構
- 私有雲架構
- SLB技術原理淺析
-
- SLB功能介紹
- SLB技術架構
- 負載均衡
-
- 為什麼使用負載均衡
- 負載均衡類型
-
- 四層 通過端口做負載
- 七層 可以通過端口、url 做負載
- 硬體
- 應用場景
- HAProxy功能
-
- 支援功能
前言:最近項目組需要搭建一個高可用系統,用到的是keepalived+haproxy的架構技術,作為小白的我也是搜了很多資料,最終測試環境部署成功。雖然實作了應有的功能,但是對于haproxy的更多功能也是一直半解,通過該文章做一個系統的複習。
web架構
HAProxy:做負載均衡,将請求配置設定到 PHP A B C 三台伺服器上。
但是當HA當機時,就必須切換位址通路另一台HA伺服器
過Keepalived共享Ip位址,隻要有HA活着,就可以通過共享IP通路應用。
單機房架構
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SM1YGN2Q2MwUTOhVmMkBzM3YjN3UzY2MmZ3IGZhRTOi9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
多機房架構
keepalived 解決共享Ip的問題。
多個機房的共享IP不同,怎麼辦?
這個問題其實是交給DNS伺服器解決。
公有雲架構
私有雲架構
SLB技術原理淺析
SLB功能介紹
SLB(Server Load Balance)服務通過設定虛拟服務位址(IP),将位于同一地域(Region)的多台雲伺服器(Elastic Compute Service,簡稱ECS)資源虛拟成一個高性能、高可用的應用服務池;再根據應用指定的方式,将來自用戶端的網絡請求分發到雲伺服器池中。
SLB服務會檢查雲伺服器池中ECS的健康狀态,自動隔離異常狀态的ECS,進而解決了單台ECS的單點問題,同時提高了應用的整體服務能力。在标準的負載均衡功能之外,SLB服務還具備TCP與HTTP抗DDoS攻擊的特性,增強了應用伺服器的防護能力。
SLB服務是ECS面向多機方案的一個配套服務,需要同ESC結合使用。
SLB技術架構
- 四層負載均衡,采用開源軟體LVS(linux virtual server),并根據雲計算需求對其進行了定制化;
- 七層負載均衡,采用開源軟體Tengine;
- 控制系統,用于 配置和監控 負載均衡系統;
參考文章:https://developer.aliyun.com/article/1803
負載均衡
負載均衡:Load Balance,簡稱LB,是一種服務或基于硬體裝置等實作的高可用反向代理技術,負載均衡将特定的業務(web服務、網絡流量等)分擔給指定的一個或多個後端特定的伺服器或裝置,進而提高了公司業務的并發處理能力、保證了業務的高可用性、友善了業務後期的水準動态擴充。
為什麼使用負載均衡
- Web伺服器的動态水準擴充–>對使用者無感覺
- 增加業務并發通路及處理能力–>解決單伺服器瓶頸問題
- 節約公網IP位址–>降低IT支出成本
- 隐藏内部伺服器IP–>提高内部伺服器安全性
- 配置簡單–>固定格式的配置檔案
- 功能豐富–>支援四層和七層,支援動态下線主機
- 性能較強–>并發數萬甚至數十萬
負載均衡類型
四層 通過端口做負載
- LVS:Linux Virtual Server
- HAProxy:High Availability Proxy
- Nginx:1.9版之後
七層 可以通過端口、url 做負載
- HAProxy
- Nginx
硬體
- F5 https://f5.com/zh
- Netscaler https://www.citrix.com.cn/products/citrix-adc/
- Array https://www.arraynetworks.com.cn/
- 深信服 http://www.sangfor.com.cn/
- 北京靈州 http://www.lingzhou.com.cn/cpzx/llfzjh/
應用場景
- 四層:Redis、Mysql、RabbitMQ、Memcache等
- 七層:Nginx、Tomcat、Apache、PHP、圖檔、動靜分離、API等
HAProxy功能
HAProxy功能
支援功能
- TCP 和 HTTP反向代理
- SSL/TSL伺服器
- 可以針對HTTP請求添加cookie,進行路由後端伺服器
- 可平衡負載至後端伺服器,并支援持久連接配接
- 支援所有主伺服器故障切換至備用伺服器
- 支援專用端口實作監控服務
- 支援停止接受新連接配接請求,而不影響現有連接配接
- 可以在雙向添加,修改或删除HTTP封包首部
- 響應封包壓縮
- 支援基于pattern實作連接配接請求的通路控制
- 通過特定的URI為授權使用者提供詳細的狀态資訊
- 支援http反向代理
- 支援動态程式的反向代理
- 支援基于資料庫的反向代理