haproxy

下面介紹的是HAProxy。

一、proxy基礎
對於負載均衡集羣來說,可以使用lvs、nginx、haproxy等來進行網絡層反代。對於應用層的反代,沒有使用lvs進行反代,但是可以使用apache(httpd)進行反代。

二、haproxy
1、haproxy的程序環境
主程序:/usr/sbin/haproxy
配置文件:/etc/haproxy/haproxy.cfg
unit文件:/usr/lib/systemd/system/haproxy.service

2、/etc/sbin/haproxy
global段:只需修改maxconn。
log:定義syslog服務器
nbproc:進程數量
ulimit-n:文件數(類似線程數量)
maxconn:併發連接數
maxconnrate:新連接數
maxse***ate:會話請求數
spread-check:健康檢測時間比例

proxies配置段:
defaults:各種默認
frontend:處理前端請求
backend:處理後端請求
listen:用於網絡層反代

3、haproxy的配置參數 ----------------proxies配置段
bind:端口綁定
例:listen http_proxy
bind :80,:443
bind 10.0.0.1:10080,10.0.0.1:10443
bind /var/run/ssl-frontend.sock user root mode 600 accept-proxy

balance:負載均衡算法
roundrobin:輪詢,後端最多4095個主機
static-rr:靜態輪詢,後端主機數無限制
leastconn:長連接使用
first:自上而下
source:取餘,然後使用一致性hash
uri:uri左邊hash,然後取餘
url_param:uri後半部分hash,然後取餘
hdr:查http首部做hash,然後取餘,否則輪詢
rdp-cookie:據cookie值

hash-type:
map-based:映射表hash
consistent:一致性hash

4、後端server健康狀態檢查 -----------proxies配置段
健康狀態檢查參數:
server{....}
check:
addr:檢測server時使用的IP地址
port:檢測時使用的端口
inter:檢測的時間間隔,單位毫秒
rise:達到指定次數,則server可用,默2
fall:達到指定次數,則server不可用,默3

cookie:(session管理)
  rewrite:重寫cookie
  insert:後面插入
  prefix:前面插入
  indirect:間接插入
  nocache:不做緩存

5、haproxy的工作模式
tcp:網絡層反代
http:應用層反代,僅代理http協議
health:健康狀態檢測的響應模式

6、統計接口的params -----------proxies配置段
stats enable:統計頁,默認開啓
stats uri:訪問接口的uri
stats realm:統計接口認證範圍
stats auth:賬戶和密碼
stats hide-version:掩藏版本信息
stats admin:利用條件開啓接口

7、haproxy首部 ------------proxies配置段
option forwardfor
默認添加"X-Forwarded-For"首部;
expect:指定的網絡地址除外
header:指定首部,不採用默認
例:
option forwardfor except 127.0.0.1
option forwardfor header X-Client

8、haproxy的error返回值 -----proxies配置段
errorfile <code> <file>
errorloc <code> <url>

9、動靜分離
use_backend:對於前端匹配acl的請求,轉到backend。

三、acl
1、acl格式
acl <aclname> <criterion> [flags] [operator] [<value>]

criterion:
dst:目的地址
dst_port:目的端口
src:源地址
src_port:目的地址

flag:
-i:忽略大小寫
-m:匹配模式

value:布爾值、整數、字符串、正則表達式、16進制數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章