HAproxy 配置參數詳解


HAproxy 配置參數詳解

/etc/haproxy/haproxy.cfg

# 配置文件
-------------------------------------------------------
# 全局配置
global

    # 設置日志文件輸出定向
    log 127.0.0.1 local3 info

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

    # 用戶與用戶組
    user haproxy
    group haproxy

    # 守護進程啟動,運維方式為后台工作
    daemon

    # 最大連接數
    maxconn 4000

# 作用於其后緊跟的listen塊,直至下一個defaults 塊,下一個default 將替換上一個塊作用於以后的listen 
defaults

    # 啟用每個實例日志記錄事件和流量。
    log global
    
    # 默認的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK
    mode http

    # maxconn 65535         maxconn 每個進程可用的最大連接數
    # retries 3         當對server的connection失敗后,重試的次數  
    # option abortonclose     啟用或禁用在隊列中掛起的中止請求的早期丟棄 
    # option redispatch     啟用或禁用在連接故障情況下的會話重新分配 
    # option dontlognull     啟用和禁用 記錄 空連接
    # option httpclose         每次請求完畢后主動關閉http通道,HA-Proxy不支持keep-alive模式 
    # option forwardfor     獲得客戶端IP 
    # option httplog        記錄HTTP 請求,session 狀態和計時器 
    option httplog
    option dontlognull
    timeout connect 5000
    timeout client 50000
    timeout server 50000


#前端配置,http_front名稱可自定義
frontend http_front
    
    # bind *:443 ssl crt /etc/haproxy/cert.pem        啟用ssl證書 
    # bind *:80                        發起http請求道80端口,會被轉發到設置的ip及端口
    bind *:80

    #haproxy的狀態管理頁面,通過/haproxy?stats來訪問
    stats uri /haproxy?stats
    default_backend http_back

#后端配置,http_back名稱可自定義
backend http_back

    # 負載均衡方式
    # source 根據請求源IP
    # static-rr 根據權重
    # leastconn 最少連接者先處理
    # uri 根據請求的uri
    # url_param 根據請求的url參數
    # rdp-cookie 據據cookie(name)來鎖定並哈希每一次請求
    # hdr(name) 根據HTTP請求頭來鎖定每一次HTTP請求
    # roundrobin 輪詢方式
    balance roundrobin

    #設置健康檢查頁面
    option httpchk GET /index.html

    #傳遞客戶端真實IP
    option forwardfor header X-Forwarded-For

    # inter 2000 健康檢查時間間隔2秒
    # rise 3 檢測多少次才認為是正常的
    # fall 3 失敗多少次才認為是不可用的
    # weight 30 權重
    # 需要轉發的ip及端口
    server node1 192.168.179.131:8081 check inter 2000 rise 3 fall 3 weight 30
    server node2 192.168.179.131:8082 check inter 2000 rise 3 fall 3 weight 30

-------------------------------------------------------



# haproxy的acl規則
-------------------------------------------------------

frontend http_front
    bind *:80
    stats uri /haproxy?stats
 
    #創建一個acl,is_http_back2是acl的名稱,可自定義,用於判斷主機名是否為www.back2.com
    acl is_http_back2 hdr_end(host) www.back2.com

    #通過正則判斷主機名中是否為bbs.back.com或forum.back.com
    acl is_host_bbs hdr_reg(host) -i ^(bbs.back.com|forum.back.com)

    #判斷ua是否為android
    acl is_ua_android hdr_reg(User-Agent) -i android

    #判斷主機名開頭是否為img.或css.或js.
    acl is_host_static hdr_beg(host) -i img. css. js.

    #判斷url路徑中是否有/bbs
    acl is_path_bbs path_beg -i /bbs

    #判斷url文件結尾
    acl is_php path_end -i .php

    #通過正則判斷url中結尾以
    acl is_static_file url_reg -i /*.(css|jpg|png|jpeg|gif)$

    #效果同上
    acl is_static_file2 path_end -i .css .jpg .png .jpeg .gif

    #如果主機名是www.back2.com那么就使用后端http_back2
    use_backend http_back2ifis_http_back2

    #默認使用的后端
    default_backend http_back

backend http_back
    balance roundrobin
    option httpchk GET /index.html
    option forwardfor header X-Forwarded-For
    server node1 192.168.1.222:8080 check inter 2000 rise 3 fall 3 weight 30

backend http_back2
    balance roundrobin
    option httpchk GET /index.html
    option forwardfor header X-Forwarded-For
    server node2 192.168.1.222:8082 check inter 2000 rise 3 fall 3 weight 30

-------------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM