天天看點

HAproxy的基礎和一些配置

1.haproxy的基礎

haproxy工作在tcp層和http協定應用層的反向代理軟體,能負載均衡,支援高并發(單程序,事件觸發型io),後端健康檢查,還能單方面斷開tcp發送連接配接,開源的免費。

1.1全局配置

nbproc           #啟動的程序數,一般為cpu核心數

1.2代理相關配置

defaults段用于為所有其它配置段提供預設參數

frontend段用于定義一系列監聽的套接字,這些套接字可接受用戶端請求并與之建立連接配接

backend段用于定義一系列“後端”伺服器,代理将會将對應用戶端的請求轉發至這些伺服器

listen段通過關聯“前端”和“後端”定義了一個完整的代理,通常隻對tcp流量有用

下邊說下這backend段用到的一些參數

roundrobin,權重輪詢,動态調整伺服器也能立即生效

static-rr,也是權重輪詢,但是隻能靜态生效,調整伺服器權重不能立即生效

leastconn,根據伺服器請求連接配接數最少,把新的請求發往伺服器

source,定位源位址到指定伺服器,但是這種hash方法在伺服器當機或者權重改變時失效。

uri,這可以使得對同一個uri的請求總是被派發至某特定的伺服器,這種hash方法在伺服器當機或者權重改變時失效

url-param,通過追蹤請求中的使用者辨別進而確定同一個使用者id的請求将被送往同一個特定的伺服器

hdr,根據header做排程,也就是虛拟主機來排程,該算法預設為靜态

rdp-cookie,根據據cookie(name)來鎖定并哈希每一次tcp請求

acl <aclname> <criterion> [flags] [operator] <value> ...

adname,acl名稱,區分大小寫

criterion,測試标準

flages –i 不區分大小寫   别的沒用過

operator,操作符,eq等于 ge大于等于  gt 大于 lt小于   le小于等于

value,整數,正則,字元串,ip位址

測試标準比較多,如下

be_sess_rate,fe_sess_rate,前一個是backend上會話建立速率,後一個frontend會話建立速率

hdr(header) <string> 請求首部中指定内容

method <string>請求方法

path_beg <string>,path_end<string>,前一個是url開頭部分,後一個url結尾部分

hdr_beg <string>,hdr_beg <string>,前一個是請求頭部是否含有比對的字元串,後一個首部中尾部比對字元串

backup:指定伺服器為備用伺服器

check:啟動健康檢查對伺服器,還有一些細緻參數,inter檢查時間間隔,rise伺服器從挂機到正常需要檢查次數,fall從正常運作到挂掉需要檢查次數

cookie:為指定server設定cookie值,使後續請求定義到同一個伺服器

redir:重定向

weight:權重

實作動靜分離的例子,用以上知識能很好了解了,試着逐行去看看能不能看懂

繼續閱讀