企業實戰(22)基於Haproxy負載均衡+Keepalived高可用集群實戰詳解

2021-02-13 非著名運維
一、Haproxy概述

 一種高效、可靠、免費的高可用及負載均衡軟體,非常適合於高負載站點的七層數據請求。客戶端通過Haproxy代理伺服器獲得站點頁面,而代理伺服器收到客戶請求後根據負載均衡的規則將請求數據轉發給後端真實伺服器,實現了一種事件驅動、單一進程模型,能支持非常大的並發連接數。

同一客戶端訪問伺服器,Haproxy保持會話的三種方案:

 1) Haproxy將客戶端ip進行Hash計算並保存,由此確保相同IP訪問時被轉發到同一真實伺服器上。

 2) Haproxy依靠真實伺服器發送給客戶端的cookie信息進行回話保持。

 3) Haproxy保存真實伺服器的session及伺服器標識,實現會話保持功能。

二、Haproxy代理模式

 四層Tcp代理:Haproxy僅在客戶端和伺服器之間雙向轉發流量,可用於郵件服務內部協議通信伺服器、Mysql服務等;

 七層應用代理:Haproxy會分析應用層協議,並且能通過運行、拒絕、交換、增加、修改或者刪除請求(request)或者回應(reponse)裡指定內容來控制協議。可用於HTTP代理或https代理。

無負載均衡

 簡單的無負載均衡Web應用環境, 用戶會直接接入Web伺服器,即kevin.com且其中不存在負載均衡機制。如果單一Web伺服器發生故障,用戶將無法接入該伺服器。另,若多位用戶同時訪問該伺服器,且其無法處理該負載,則會出現響應緩慢或者無法接入的情況

四層負載均衡

 最為簡單的負載均衡方式,將網絡流量引導至多臺伺服器以使用四層(即傳輸層)負載均衡。這種方式會根據IP範圍與埠進行用戶流量轉發(例如:有請求指向http://kevin.com/anything,則該流量將被轉發至backend,即將用戶請求轉發至後端伺服器的web-backend組。被選定的後端伺服器將直接響應用戶請求),web-backend中的全部伺服器都應當擁有同樣的內容, 否則用戶可能會遭遇內容不一致問題。

七層負載均衡

 網絡流量使用7層負載均衡意味著均衡器能夠根據用戶的請求內容將請求轉發至不同後端伺服器。這種方式允許在同一域名及埠上運行多套Web應用伺服器。例如:用戶向kevin.com/blog發送請求,則會被轉發至blog後端,其包含一組運行有同一blog應用的伺服器。其它請求則會被轉發至web-backend,其負責運行其它應用。總的來說,它可以根據「IP+埠」的方式進行負載分流,還可以根據網站的URL、訪問域名、瀏覽器類別、語言等決定負載均衡的策略。

三、負載均衡LVS、Haproxy、Nginx對比

總結:

 大型網站架構:對性能有嚴格要求的時候可以使用lvs或者硬體F5,單從負載均衡的角度來說,lvs也許會成為主流,更適合現在大型的網際網路公司。

 中型網站架構:對於頁面分離請求有明確規定,並且性能有嚴格要求時,可以使用haproxy。

 中小型網站架構:比如日訪問量小於1000萬,需要進行高並發的網站或者對網絡不太嚴格的時候,可以使用nginx。

四、 Haproxy負載均衡算法

HaProxy的負載均衡算法現在具體有如下8種:

 roundrobin:輪詢

 static-rr:權重輪詢

 leastconn:最少連接者優先

 source:根據請求源IP,這個跟Nginx的ip_hash機制類似

 ri:根據請求的URI

 rl_param:表示根據請求的URI參數『balance url_param’requires an URL parameter name;

 hdr(name):根據HTTP請求頭來鎖定每一次HTTP請求

 rdp-cookie(name):根據cookie來鎖定並哈希每一次TCP請求

五.Haproxy的配置

Haproxy的配置過程分為3個主要部分:

Haproxy配置中分五大部分:

global:全局參數配置,進程級的,用來控制Haproxy啟動前的一些進程及系統設置。

defaults:配置一些默認的參數,可以被frontend,backend,listen段集成使用。

frontend:用來匹配接收客戶所請求的域名,uri等,並針對不同的匹配,做不同的請求處理。

backend:定義後端伺服器集群,以及對後端伺服器集群的一些權重、隊列、連接數等選項的設置,類似於nginx中的upstream模塊。

listen:可以理解為frontend和backend的組合體。

 Haproxy配置文件的配置方法主要有兩種,一種是由前端(frontend)和後端(backend)配置塊組成,前端和後端都可以有多個。第二種方法是只有一個listen配置塊來同時實現前端和後端。最常用也是推薦的方法為第一種,即frontend和backend的模式。


1. 配置參數詳解
global                                                 # 全局參數global模塊的設置
   log         127.0.0.1 local2                      # log語法:log <address_1>[max_level_1] # 全局的日誌配置,使用log關鍵字,指定使用127.0.0.1上的syslog服務中的local0日誌設備,記錄日誌等級為info的日誌
   chroot      /var/lib/haproxy              #工作目錄
   pidfile     /var/run/haproxy.pid          #進程pid文件
   maxconn     4000                          #最大連接數
   user        haproxy                       #所屬用戶
   group       haproxy                       #所屬用戶組
   daemon                                    #以守護進程方式運行haproxy
stats socket /var/lib/haproxy/stats       #定義socket套接字,針對在線維護很有幫助

defaults                                      # defaults模塊的設置
   mode                    http              #默認的模式{ tcp|http|health},health只會返回OK
   log                     global            #應用全局的日誌配置
   option                  httplog           #啟用日誌記錄HTTP請求,默認不記錄HTTP請求日誌                                                                
   option                 dontlognull        # 啟用該項,日誌中將不會記錄空連接。所謂空連接就是在上遊的負載均衡器者監控系統為了探測該 服務是否存活可用時,需要定期的連接或者獲取某一固定的組件或頁面,或者探測掃描埠是否在監聽或開放等動作被稱為空連接;官方文檔中標註,如果該服務上遊沒有其他的負載均衡器的話,建議不要使用該參數,因為網際網路上的惡意掃描或其他動作就不會被記錄下來
   option http-server-close                  #每次請求完畢後主動關閉http通道
   option forwardfor       except 127.0.0.0/8   #如果伺服器上的應用程式想記錄發起請求的客戶端的IP位址,需要在HAProxy上配置此選項, 這樣 HAProxy會把客戶端的IP信息發送給伺服器,在HTTP                                                                           請求中添加"X-Forwarded-For"欄位。啟用 X-Forwarded-For,在requests                                                                           頭部插入客戶端IP發送給後端的server,使後端server獲取到客戶端的真實IP。
   option                  redispatch       # 當使用了cookie時,haproxy將會將其請求的後端伺服器的serverID插入到cookie中,以保證會話的SESSION持久性;而此時,如果後端的伺服器宕掉                                                                           了, 但是客戶端的cookie是不會刷新的,如果設置此參數,將會將客戶的請                                                                           求強制定向到另外一個後端server上,以保證服務的正常。
   retries                 3              # 定義連接後端伺服器的失敗重連次數,連接失敗次數超過此值後將會將對應後端伺服器標記為不可用
   timeout http-request    10s             #http請求超時時間
   timeout queue           1m              #一個請求在隊列裡的超時時間
   timeout connect         10s             #連接超時
   timeout client          1m              #客戶端超時
   timeout server          1m              #伺服器端超時
   timeout http-keep-alive 10s             #設置http-keep-alive的超時時間
   timeout check           10s             #檢測超時
maxconn                 3000            #每個進程可用的最大連接數

listen stats                                #定義一個listen模塊,用於狀態檢測
mode http                               #模式採用http
bind 0.0.0.0:8888                       #綁定本機的地址及埠
stats enable                            #啟用狀態檢測功能
stats uri     /haproxy-status           #狀態檢測的URI
stats auth    haproxy:123456            #訪問檢測界面的用戶名和密碼

frontend  main *:80                         #frontend模塊的設置,定義了一個前端
   acl url_static       path_beg       -i /static /images /javascript /stylesheets
   acl url_static       path_end       -i .jpg .gif .png .css .js      #這裡定義了一個acl規則
   use_backend static   if  url_static     #如果匹配到了acl,則訪問後端的static模塊
default_backend             my_webserver #如果沒有匹配到acl,則將請求丟給默認的模塊

backend static                          #定義第一個後端模塊,static
   balance     roundrobin              #負載均衡算法為輪詢
server      static 127.0.0.1:80 check         #後端伺服器地址

backend my_webserver                    #定第二個後端,my_wenserver
balance     roundrobin              #負載均衡算法
   server  web01 172.31.2.33:80  check inter 2000 fall 3 weight 30              #定義的多個後端
   server  web02 172.31.2.34:80  check inter 2000 fall 3 weight 30              #定義的多個後端
   server  web03 172.31.2.35:80  check inter 2000 fall 3 weight 30              #定義的多個後端

2.健康檢查

 Haproxy作為Loadblance,支持對backend的健康檢查,以保證在後端backend不能服務時,把從frontend進來的request分配至其他可以服務的backend,從而保證整體服務的可用性。

相關配置:

httpchk <method><uri><version>
option httpchk HEAD / HTTP/1.0
check:啟動健康檢測
inter:健康檢測時間間隔
rise:檢測服務可用的連接次數
fall:檢測服務不可用的連接次數
error-limit:往server寫數據連續失敗次數的上限,執行on-error的設定
observe<mode>:把正常服務過程作為健康檢測請求,即實時檢測
on-error<mode>:滿足error-limit後執行的操作(fastinter、fail-check、sudden-death、mark-down)。其中fastinter表示立即按照fastinter的檢測延時進行。fail-check表示改次error作為一次檢測;sudden-death表示模仿一次fatal,如果緊接著一次fail則server為down;mark-down表示直接把server設置為down狀態。
server web-node2 192.168.56.22:8080 check inter 2000 rise 30 fall 15

3.檢測方式

1、通過監聽埠進行健康檢測

 這種檢測方式,haproxy只會去檢查server的埠,並不能保證服務真正可用。

listen http_proxy 0.0.0.0:80
mode http
cookie SERVERID
balance roundrobin
option httpchk
server web1 192.168.1.1:80 cookie server01 check
server web2 192.168.1.2:80 cookie serve02 check inter 500 rise 1 fall 2


2、通過URI進行健康檢測

 這種檢測方式,是用去GET後端server的web頁面,基本可以代表後端服務的可用性。

listen http_proxy 0.0.0.0:80
mode http
cookie SERVERID
balance roundrobin
option httpchk GET /index.html
server web1 192.168.1.1:80 cookie server01 check
server web2 192.168.1.2:80 cookie serve02 check inter 500 rise 1 fall 2

3、通過request獲取的頭部信息進行匹配進行健康檢測

 這種檢測方式,是基於一些高級、精細的監測需求,通過對後端頭部訪問的頭部信息進行匹配檢測。

listen http_proxy 0.0.0.0:80
mode http
cookie SERVERID
balance roundrobin
option httpchk HEAD /index.jsp HTTP/1.1\r\n\Host:\www.xxx.com
server web1 192.168.1.1:80 cookie server01 check
server web2 192.168.1.2:80 cookie serve02 check inter 500 rise 1 fall 2

Keepalived詳細介紹篇:

 企業實戰(14)基於LVS-DR模式負載均衡+Keepalived高可用集群實戰詳解

六、Haproxy負載均衡集群實戰

 準備4臺Linux伺服器,兩臺做Web伺服器,1臺安裝HAProxy,1臺做客戶端,實現如下功能:

   客戶端訪問Haproxy,Haproxy分發請求到後端Real Server;

   開啟Haproxy監控頁面,及時查看調度器狀態;

   設置Haproxy為開機啟動;

使用4臺虛擬機:

  1臺作為Haproxy調度器  2臺作為Real Server  1臺作為客戶端

環境介紹:

 Haproxy調度伺服器:192.168.2.130/24

 真實伺服器1:192.168.2.128/24

 真實伺服器2:192.168.2.129/24

 客戶端:192.168.2.132/24

注意:

 如果在這之前有配置過其他負載均衡軟體,如:LVS、Nginx,則必須將網絡環境清理乾淨(清空LVS規則、關閉keepalived、刪除VIP位址)。

一、後端真實伺服器配置

1.兩臺後端伺服器128/129分別安裝Nginx

[root@localhost ~]# wget http://nginx.org/download/nginx-1.16.1.tar.gz

[root@localhost ~]# yum -y install gcc pcre-devel openssl-devel

[root@localhost ~]# useradd -s /sbin/nologin nginx   //創建禁止登陸解釋器的用戶(為了安全)

[root@localhost ~]# id nginx
uid=1001(nginx) gid=1001(nginx) 組=1001(nginx)

[root@localhost ~]# tar -xf nginx-1.16.1.tar.gz

[root@localhost ~]# cd nginx-1.16.1

[root@localhost nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

        --prefix=/usr/local/nginx                   //指定安裝路徑
        --user=nginx                               //指定用戶
        --group=nginx                              //指定組
        --with-http_ssl_module                    //安裝ssl模塊,開啟其中的SSL加密功能(需要什麼模塊就安裝什麼模塊)
 .
 .
 nginx modules path: "/usr/local/nginx/modules"
 nginx configuration prefix: "/usr/local/nginx/conf"
 nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
 nginx pid file: "/usr/local/nginx/logs/nginx.pid"
 nginx error log file: "/usr/local/nginx/logs/error.log"
 nginx http access log file: "/usr/local/nginx/logs/access.log"
 nginx http client request body temporary files: "client_body_temp"
 nginx http proxy temporary files: "proxy_temp"
 nginx http fastcgi temporary files: "fastcgi_temp"
 nginx http uwsgi temporary files: "uwsgi_temp"
 nginx http scgi temporary files: "scgi_temp"

[root@localhost nginx-1.16.1]# make && make install   //編譯並且安裝
.
'/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf' \
|| cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs' \
|| mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' \
|| mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' \
|| cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
|| mkdir -p '/usr/local/nginx/logs'
make[1]: 離開目錄「/root/nginx-1.16.1」

[root@localhost ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

[root@test2 ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

2.創建測試頁面

[root@localhost ~]# echo "I am 192.168.2.128" > /usr/local/nginx/html/index.html

[root@test2 ~]# echo "I am 192.168.2.129" > /usr/local/nginx/html/index.html

3.啟動Nginx

[root@localhost nginx-1.16.1]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 

[root@localhost nginx-1.16.1]# netstat -antulp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6079/nginx: master

或者[root@localhost nginx-1.16.1]# netstat -antulp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6079/nginx: master

3.關閉防火牆與selinux

 兩臺後端伺服器都需要操作。

[root@test2 ~]# systmctl stop firewalld

[root@test2 ~]# setenforce 0

[root@test2 ~]# getenforce
Disabled

[root@test2 ~]# vim /etc/sysconfig/selinux     //永久關閉selinux
SELINUX=disabled

二、調度器部署Haproxy服務

1.安裝Haproxy軟體

[root@test3 ~]# yum -y install haproxy

2.修改配置文件

[root@test3 ~]# vim /etc/haproxy/haproxy.cfg
global             ----> 以下為:全局設置
    log 127.0.0.1 local2   ###[err warning info debug]
    chroot /usr/local/haproxy       //改變當前工作目錄
    pidfile /var/run/haproxy.pid      //haproxy的pid存放路徑
    maxconn 4000               //最大連接數,默認4000
    user haproxy          //用戶haproxy運行啟動服務
    group haproxy         //用戶組為haproxy
    daemon                //創建1個進程進入deamon模式運行(放到後臺)
     .
   defaults     -> 以下為:默認設置
    mode http                //默認的模式mode { tcp|http|health } tcp是4層,http是7層,health只會返回OK。
    log global               //採用全局定義的日誌
    option  dontlognull        //不記錄健康檢查的日誌信息
    option  httpclose          //每次請求完畢後主動關閉http通道
    option  httplog            //日誌類別http日誌格式
    option  forwardfor        //後端伺服器可以從Http Header中獲得客戶端ip
    option  redispatch          //serverid伺服器掛掉後強制定向到其他健康伺服器
    timeout connect 10000       //如果backend沒有指定,默認為10s
    timeout client 300000       //客戶端連接超時
    timeout server 300000        //伺服器連接超時
    maxconn  60000               //最大連接數
    retries  3                  //3次連接失敗就認為服務不可用,也可以通過後面設置
     .      
            -> 以下為:集群配置(手寫進去)
   listen stats 0.0.0.0:1080      //監聽埠
       stats refresh 30s          //統計頁面自動刷新時間
       stats uri /stats            //統計頁面url
       stats realm Haproxy Manager  //進入管理頁面查看狀態信息
       stats auth admin:admin      //統計頁面用戶名和密碼設置
     #stats hide-version           //隱藏統計頁面上HAProxy的版本信息
   listen  websrv-rewrite 0.0.0.0:80
      balance roundrobin           //使用輪詢算法(rr)
      server  web1 192.168.2.100:80 check inter 2000 rise 2 fall 5  
                                  //每隔2000毫秒做一次健康檢查,允許失敗5次,連續失敗5次後從集群剔除,重新訪問2次後算成功,再添加入集群.
      server  web2 192.168.2.200:80 check inter 2000 rise 2 fall 5

3.啟動服務並設置開機自啟

[root@test3 ~]# systemctl start haproxy

[root@test3 ~]# systemctl enable haproxy

三、客戶端驗證

 客戶端配置與HAProxy相同網絡段的IP位址,並使用谷歌瀏覽器訪問http://192.168.2.130(或者客戶端curl http://192.168.2.130)測試調度器是否正常工作,客戶端訪問http://192.168.2.130:1080/stats測試狀態監控頁面是否正常。

備註:

Queue隊列數據的信息(當前隊列數量,最大值,隊列限制數量);

Session rate每秒會話率(當前值,最大值,限制數量);

Sessions總會話量(當前值,最大值,總量,Lbtot: total number of times a server was selected選中一臺伺服器所用的總時間);

Bytes(入站、出站流量);

Denied(拒絕請求、拒絕回應);

Errors(錯誤請求、錯誤連接、錯誤回應);

Warnings(重新嘗試警告retry、重新連接redispatches);

Server(狀態、最後檢查的時間(多久前執行的最後一次檢查)、權重、備份伺服器數量、down機伺服器數量、down機時長)。

  如果你覺得這篇文章還不錯,就請動動你的發財手為本文留個言點個在看,或者轉發一下吧,因為這將是我持續輸出更多優質文章的最強動力! 

相關焦點

  • Haproxy+keepalived高可用集群實戰
    隨著網際網路火熱的發展,開源負載均衡器的大量的應用,企業主流軟體負載均衡如
  • Linux運維:搭建HAProxy+Keepalived高可用負載均衡系統
    見微信公眾號底部菜單 |  本文底部有推薦書籍 微信公眾號:計算機與網絡安全ID:Computer-network1、搭建環境描述下面介紹如何通過Keepalived搭建高可用的HAProxy負載均衡集群系統
  • 詳解Keepalived和HAProxy高可用負載均衡
    最初它是為了管理並監控Linux虛擬伺服器(LVS)集群中各服務節點的狀態,後來又加入了路由冗餘協議(VRRP)來實現高可用功能,所以Keepalived除了可以管理配置LVS外,還可以作為Nginx、HAProxy等的高可用解決方案。
  • Linux運維:測試HAProxy+Keepalived高可用負載均衡集群
    HAProxy的高可用性、負載均衡特性和故障自動切換特性。本文介紹高可用性和負載均衡兩個特性的簡單測試。1、測試Keepalived的高可用功能高可用性是通過HAProxy的兩個HAProxy Server完成的。
  • haproxy+keepalived實現高可用負載均衡
    軟體負載均衡一般通過兩種方式來實現:基於作業系統的軟負載實現和基於第三方應用的軟負載實現。
  • Mysq+Haproxy+Keepalived高可用
    第二種:haproxy宕機出發VIP漂移的高可用。這兩種模式的底層資料庫均為雙主模式或者MGR的多主模式,mariadb的galera模式,percona的pxc模式;也就是底層的資料庫每一個都可寫。在雙主的模式下,如果添加了haproxy這一層,那麼就可以實現了資料庫讀寫的負載均衡,VIP隨著haproxy的狀態而漂移,即上面提到的第一種情況。
  • HAProxy基於KeepAlived實現Web高可用及動靜分離
    前言軟體負載均衡一般通過兩種方式來實現:基於作業系統的軟負載實現基於第三方應用的軟負載實現LVS是基於Linux作業系統實現的一種軟負載,而HAProxy則是基於第三方應用實現的軟負載。HAProxy相比LVS的使用要簡單很多,但跟LVS一樣,HAProxy自己並不能實現高可用,一旦HAProxy節點故障,將會影響整個站點。
  • MySQL+Haproxy+Keepalived高可用
    第二種:haproxy宕機出發VIP漂移的高可用。這兩種模式的底層資料庫均為雙主模式或者MGR的多主模式,mariadb的galera模式,percona的pxc模式;也就是底層的資料庫每一個都可寫。在雙主的模式下,如果添加了haproxy這一層,那麼就可以實現了資料庫讀寫的負載均衡,VIP隨著haproxy的狀態而漂移,即上面提到的第一種情況。
  • 專業負載均衡器Haproxy(擴展)
    1、HAProxy簡介官網:http://www.haproxy.comHAProxy提供高可用性、負載均衡以及基於TCP和HTTP的應用代理,支持虛擬主機,它是免費、快速並且可靠的一種負載均衡解決方案。
  • Nginx+Keepalived高可用集群
    Keepalived高可用軟體Keepalived軟體起初是專為LVS負載均衡軟體設計的,用來管理並監控LVS集群系統中各個服務節點的狀態,後來又加入了可以實現高可用的VRRP功能。因此,keepalived除了能夠管理LVS軟體外,還可以作為其他服務的高可用解決方案軟體。
  • 【實戰案例】配置HAProxy負載均衡集群
    ~] # echo 'net.ipv4.ip_forward = 1' >> sy sctl.conf //開啟路由轉發  02. [ root@haproxy ~] # sy sctl - p  03. [ root@haproxy ~] # y um - y install haproxy其實,運維雖然入門簡單,實操多,但想成為大廠青睞的專業人才
  • 一文詳解HAProxy負載均衡,看完後醍醐灌頂!(內附網盤連結和提取碼)
    比 Nginx 有更出色的負載均衡速度,在並發處理上也是優於 Nginx 的。第一章  Web架構介紹web服務架構設計—Haproxy四層反向負載:1. 使用HAProxy做反向代理,實現四層負載均衡2. 可配置多種調度算法3. 支持後端伺服器狀態監測4. 節約公網IP5.
  • RabbitMQ高可用介紹
    1.全局圖HAproxy 來做 RabbitMQ 負載均衡和高可用,用 Keepalived 來保證 HAproxy 的高可用。客戶端通過VIP建立通信鏈路;通信鏈路通過Keeaplived的Master節點路由到對應的HAProxy之上;HAProxy通過負載均衡算法將負載分發到集群中的各個節點之上。正常情況下客戶端的連接通過圖中左側部分進行負載分發。
  • 從零開始掌握 HAProxy 負載均衡器,詳細
    HAProxy 的核心功能負載均衡:L4和L7兩種模式,支持RR/藍色RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等重點的負載均衡算法健康檢查:支持TCP和HTTP兩種健康檢查模式會話保持:對於未實現會話共享的應用程式,可通過插入Cookie/重寫Cookie/Prefix Cookie,以及上述的多種
  • 負載均衡!中級運維必知的10個問題
    負載均衡是衡量初中級以上運維技術水平的重要標尺!負載均衡是普通運維人員很難有機會接觸和系統學習的知識!keepalived + lvs 的組合,執行ipvsadm ,輸出的數據顯示了每個後端伺服器連接的數量,一些伺服器的值高些,而一些卻低一些。
  • 雲原生打造企業內部DNS+ETCD+NTP+Quay高可用實戰(完結篇)
    為了將NTP服務暴露給集群外提供企業統一的高可用NTP服務。相關服務可以正常在集群內提供服務。但是存在最後一公裡的問題,就是如何暴露服務給集群外提供給企業內部使用。NTP和DNS服務的服務埠分別是UDP的123和UPD的53。
  • 在Ubuntu 20.04上使用Keepalived配置高可用性HAProxy
    如果特定路由不可用,Keepalived 可以與 HAProxy 一起為備份路由提供故障轉移服務。這確保了更健壯和可擴展的高可用性環境。Keepalived 利用虛擬路由器冗餘協議在主(active)和備用(passive)LVS 路由器(在本例中為 HAProxy 伺服器,因為它們正在負載均衡 Web 應用程式)之間定期發送通告,以確定彼此的狀態。如果主伺服器在預定時間內無法自己通告,則 Keepalived 會啟動故障轉移,備用伺服器將成為主伺服器。
  • 使用 LVS 實現負載均衡原理及安裝配置詳解
    load balance 集群的簡寫,翻譯成中文就是負載均衡集群。常用的負載均衡開源軟體有nginx、lvs、haproxy,商業的硬體負載均衡設備F5、Netscale。這裡主要是學習 LVS 並對其進行了詳細的總結記錄。
  • Linux運維:基於虛擬主機的HAProxy負載均衡系統配置實例
    1、通過HAProxy的ACL規則配置虛擬主機下面通過HAProxy的ACL功能配置一套基於虛擬主機的負載均衡系統,這裡的作業系統環境為CentOS release 6.3,HAProxy版本為haproxy-1.4.24,要實現的功能如圖1所示。
  • 天翼雲虛擬IP位址及其在高可用集群中的應用
    一、高可用集群在談虛擬IP位址前,我們先了解一下什麼叫高可用集群。二、高可用集群和負載均衡集群的區別天翼雲平臺已經提供了彈性負載均衡服務,也可以實現業務的高用性,那為什麼還要有高可用集群而不直接用負載均衡器呢?這是由於負載均衡集群和高可用集群的使用場景有一定的差別。