Haproxy Keepalived主主高可用

2021-07-02 13:26:58 字數 4479 閱讀 6984

介紹

haproxy是高效能的**伺服器,其可以提供7層和4層**,具有healthcheck,負載均衡等多種特性,效能卓越,包括twitter,reddit,stackoverflow,github在內的多家知名網際網路公司在使用。

keepalived是乙個高可用方案,通過vip(即虛擬ip)和心跳檢測來實現高可用。其原理是存在一組(兩台)伺服器,分別賦予master,backup兩個角色,預設情況下master會繫結vip到自己的網絡卡上,對外提供服務。master,backup會在一定的時間間隔向對方傳送心跳資料報來檢測對方的狀態,這個時間間隔一般為2秒鐘,如果backup發現master宕機,那麼backup會傳送arp包到閘道器,把vip繫結到自己的網絡卡,此時backup對外提供服務,實現自動化的故障轉移,當master恢復的時候會重新接管服務。

推薦閱讀:

centos 6.3下haproxy+keepalived+apache配置筆記

haproxy + keepalived 實現web群集 on centos 6  

keepalived+haproxy配置高可用負載均衡

haproxy+keepalived構建高可用負載均衡

預設情況下,第一台負載均衡器主要分發www.linuxidc.com的請求,第二台負載均衡器主要分發img.linuxidc.com的請求。任意一台宕機都不會影響**分發。這樣不會導致伺服器浪費。

安裝配置過程

1、安裝配置過程,(兩台haproxy的安裝配置步驟一樣) 

#cd /usr/local/src 

#wget   

#tar xf  haproxy-1.4.24.tar.gz 

#cd haproxy-1.4.24 

#make target=linux26 arch=x86_64  

#編譯引數參考readme,其中target是指定核心版本,arch指定cpu架構, 

#make  install 

2、安裝完畢後,建立配置檔案和啟動檔案。 

#mkdir /etc/haproxy 

#cp examples/haproxy.cfg  /etc/haproxy 

#cp examples/haproxy.init  /etc/init.d/haproxy 

#chmod +x /etc/init.d/haproxy 

#ln -s /usr/local/sbin/haproxy /usr/sbin/

3、編輯配置檔案(兩台haproxy配置檔案相同)

# vim /etc/haproxy/haproxy.cfg 

# this config needs haproxy-1.1.28 or haproxy-1.2.1 

global 

log 127.0.0.1  local0    #日誌輸出配置,所有日誌都記錄在本機,通過local0輸出 

log 127.0.0.1 local1 notice              

#log loghost  local0 info    

maxconn 65535                        #最大連線數 

chroot /usr/local/                  #改變當前工作目錄。 

uid 99                              #所屬使用者的uid    

gid 99                              #所屬執行的gid 

daemon                              #以後臺形式執行haproxy 

#預設的模式mode ,tcp是4層,http是7層,health只會返回ok 

retries 3                        #兩次連線失敗就認為是伺服器不可用 

option redispatch    

#當serverid對應的伺服器掛掉後,強制定向到其他健康的伺服器 

option abortonclose  

#當伺服器負載很高的時候,自動結束掉當前佇列處理比較久的鏈結 

maxconn 65535                      #預設的最大連線數 

contimeout                5000      #連線超時 

clitimeout                50000    #客戶端超時 

srvtimeout                50000    #伺服器超時 

timeout check 5s                    #心跳檢測超時 

stats refresh 30s                  #統計頁面自動重新整理時間      

stats uri  /stats                  #統計頁面url          

stats realm linuxidc-test-haproxy    #統計頁面密碼框上提示文字 

stats auth admin:admin123          #統計頁面使用者名稱和密碼設定      

stats hide-version                  #隱藏統計頁面上haproxy的版本資訊 

frontend www 

bind :80  

#這裡建議使用bind *:80的方式,要不然做集群高可用的時候有問題,vip切換到其他機器就不能訪問了。 

acl web hdr(host) -i www.linuxidc.com   

#acl後面是規則名稱,-i是要訪問的網域名稱,如果訪問www.linuxidc.com這個網域名稱就分發到下面的webserver 的作用域。 

acl img hdr(host) -i img.linuxidc.com    

#如果訪問img.linuxidc.com就分發到imgserver這個作用域。 

use_backend webserver if web 

use_backend imgserver if img 

backend    webserver            #webserver作用域 

#banlance roundrobin 輪詢,balance source 儲存session值,支援static-rr,leastconn,first,uri等引數 

#檢測檔案,如果分發到後台index.html訪問不到就不再分發給它。 

4、啟動haproxy服務,檢視狀態。

MySQL NGINX設定主主複製高可用

該實驗目的是為了 1,使用nginx輪詢來配置mysql主主複製集群的高可用,當兩台mysql正常使用的時候,在他們之間輪詢,分擔伺服器壓力。當其中一台mysql down了之後,nginx會自動輪詢up的那台。當down的mysql啟動之後,資料會自動同步。2,遠端連線mysql的時候,採用ngi...

mysql 3台主主 mysql主主

設定主 主複製 1 在兩台伺服器上各自建立乙個具有複製許可權的使用者 2 修改配置檔案 主伺服器上 mysqld server id 10 log bin mysql bin relay log relay mysql relay log index relay mysql.index auto i...

實現高可用的主備 主從 主主模式

高可用性h.a.high ailability 指的是通過盡量縮短因日常維護操作 計畫 和突發的系統崩潰 非計畫 所導致的停機時間,以提高系統和應用的可用性。ha系統是企業防止核心計算機系統因故障停機的最有效手段。高可用性在日常的工作中接觸到的比較多,比如資料庫的高可用 儲存的高可用等等。下面對實現...