haproxy實現mysql集群負載均衡

2021-09-01 20:12:20 字數 3594 閱讀 4346

server mysql2 114.215.29.139:3407 check

haproxy -f /etc/haproxy/haproxy.cfg
roundrobin,表示簡單的輪詢,每個伺服器根據權重輪流使用,在伺服器的處理時間平均分配的情況下這是最流暢和公平的演算法。該演算法是動態的,對於例項啟動慢的伺服器權重會在執行中調整。

static-rr,表示根據權重,建議關注;每個伺服器根據權重輪流使用,類似roundrobin,但它是靜態的,意味著執行時修改許可權是無效的。另外,它對伺服器的數量沒有限制。

leastconn,表示最少連線者先處理,建議關注;leastconn建議用於長會話服務,例如ldap、sql、tse等,而不適合短會話協議。如http.該演算法是動態的,對於例項啟動慢的伺服器權重會在執行中調整。

uri,表示根據請求的uri;表示根據請求的uri左端(問號之前)進行雜湊,用可用伺服器的權重總數除以雜湊值,根據結果進行分配。只要伺服器正常,同乙個uri位址總是訪問同乙個伺服器。一般用於**快取和反病毒**,以最大限度的提高快取的命中率。該演算法只能用於http後端;該演算法一般用於後端是快取伺服器;該演算法預設是靜態的,所以執行時修改伺服器的權重是無效的,但是演算法會根據「hash-type」的變化做調整。

url_param,表示根據請求的url引數』balance url_param』 requires an url parameter name在http get請求的查詢串中查詢中指定的url引數,基本上可以鎖定使用特製的url到特定的負載均衡器節點的要求;該演算法一般用於將同乙個使用者的資訊傳送到同乙個後端伺服器;該演算法預設是靜態的,所以執行時修改伺服器的權重是無效的,但是演算法會根據「hash-type」的變化做調整。

hdr(name),表示根據http請求頭來鎖定每一次http請求;在每個http請求中查詢http頭,http頭將被看作在每個http請求,並針對特定的節點;如果缺少頭或者頭沒有任何值,則用roundrobin代替;該演算法預設是靜態的,所以執行時修改伺服器的權重是無效的,但是演算法會根據「hash-type」的變化做調整。

rdp-cookie(name),表示根據據cookie(name)來鎖定並雜湊每一次tcp請求。為每個進來的tcp請求查詢並雜湊rdp cookie;該機制用於退化的持久模式,可以使同乙個使用者或者同乙個會話id總是傳送給同一臺伺服器。如果沒有cookie,則使用roundrobin演算法代替;該演算法預設是靜態的,所以執行時修改伺服器的權重是無效的,但是演算法會根據「hash-type」的變化做調整。

acl策略定義

如果請求的網域名稱滿足正規表示式返回true -i是忽略大小寫

acl denali_policy hdr_reg(host) -i ^(www.inbank.com|image.inbank.com)$

如果請求網域名稱滿足www.inbank.com 返回 true -i是忽略大小寫

acl tm_policy hdr_dom(host) -i www.inbank.com

在請求url中包含sip_apiname=,則此控制策略返回true,否則為false

acl invalid_req url_sub -i sip_apiname=#定義乙個名為invalid_req的策略

在請求url中存在timetask作為部分位址路徑,則此控制策略返回true,否則返回false

acl timetask_req url_dir -i timetask

當請求的header中content-length等於0時返回 true

acl missing_cl hdr_cnt(content-length) eq 0

acl策略匹配相應

當請求中header中content-length等於0 阻止請求返回403

block if missing_cl

block表示阻止請求,返回403錯誤,當前表示如果不滿足策略invalid_req,或者滿足策略timetask_req,則阻止請求。

block if !invalid_req || timetask_req

當滿足denali_policy的策略時使用denali_server的backend

use_backend denali_server if denali_policy

當滿足tm_policy的策略時使用tm_server的backend

use_backend tm_server if tm_policy

reqisetbe關鍵字定義,根據定義的關鍵字選擇backend

reqisetbe ^host:\ img dynamic

reqisetbe [\ ]\ /(img|css)/ dynamic

reqisetbe [\ ]\ /admin/stats stats

以上都不滿足的時候使用預設mms_server的backend

default_backend mms

連線池失效問題

timeout client 300m 這個引數配置程式與haproxy的鏈結超時時間

timeout server 300m 將這兩個引數設定大

haproxy給mysql做負載均衡

一 首先安裝haproxy make target linux26 prefix usr local haproxy 將haproxy安裝到 usr local haproxy make install prefix usr local haproxy prefix必須用大寫,否則無法安裝到指定目錄...

配置HAProxy實現Web負載均衡

環境 一台安裝haproxy,兩台安裝apache服務 防火牆和selinux關閉 原始碼安裝 wget zcvf haproxy 1.3.20.tar.gz cd haproxy 1.3.20 make target linux26 prefix usr local haproxy make in...

mycat整合HAProxy實現高可用

haproxy的狀態資訊統計頁面 目前haproxy支援的負載均衡演算法有如下8種 1 roundrobin 表示簡單的輪詢,每個伺服器根據權重輪流使用,在伺服器的處理時間平均分配的情況下這是最流暢和公平的演算法。該演算法是動態的,對於例項啟動慢的伺服器權重會在執行中調整。2 leastconn 連...