Haproxy--配置解析

weixin_33978044發表於2016-08-07

廢話不多說,上乾貨

<pre># this config needs haproxy-1.1.28 or haproxy-1.2.1

global
log 127.0.0.1 local0 [level] # 全域性的日誌配置,使用log關鍵字,指定使用127.0.0.1上的syslog服務中的local0日誌裝置,記錄日誌等級為LEVEL的日誌
maxconn 100000
uid 501
gid 501
daemon
quiet #slient模式,啟動時無輸出
nbproc 1 #指定啟動的haproxy程式個數,只能用於守護程式模式的haproxy;預設為止啟動一個程式,鑑於除錯困難等多方面的原因,一般只在程式僅能開啟少數檔案描述符的場中中才使用多程式模式
pidfile /usr/local/haproxy/haproxy.pid
stats socket /tmp/haproxy.sock #開啟 stats unix socket

defaults
log global
mode http # mode語法:mode {http|tcp|health} 。http是七層模式,tcp是四層模式,health是健康檢測
option httplog #啟用日誌記錄HTTP請求,預設haproxy日誌記錄是不記錄HTTP請求的

option httpclose #每次請求完畢後主動關閉http通道

    option  dontlognull     #啟用該項,日誌中將不會記錄空連線。所謂空連線就是在上游的負載均衡器或者監控系統為了探測該服務是否存活可用時,需要定期的連線或者獲取某一固定的元件或頁面,或者探測掃描埠是否在監聽或開放等動作被稱為空連線;官方文件中標註,如果上游沒有載均衡器的話,建議不要使用該引數,因為網際網路上的惡意掃描或其他動作就不會被記錄下來
    option  forwardfor header X-Real-Ip     # header後的引數由後端的伺服器決定 nginx的為x-real-ip
    balance roundrobin
   option dontlog-normal     #開啟正常連線的日誌
    option redispatch        #當使用了cookie時,haproxy將會將其請求的後端伺服器的serverID插入到cookie中,以保證會話的SESSION永續性;而此時,如果後端的伺服器宕掉了,但是客戶端的cookie是不會重新整理的,如果設定此引數,將會將客戶的請求強制定向到另外一個後端server上,以保證服務的正常
    retries 1

timeout http-keep-alive 30s

    maxconn 100000
    contimeout      10000
    clitimeout      50000     #設定連線客戶端傳送資料時的成功連線最長等待時間,預設單位是毫秒
    srvtimeout      50000     #設定伺服器端迴應客戶度資料傳送的最長等待時間,預設單位是毫秒
    stats uri /status
    stats auth xiaofan:123

frontend web_in
mode http
maxconn 80000
bind *:80
bind :::80

    acl is_javamc  url_reg -i (/app/notification/latest\?|/client/mc/)  #url_reg  正則匹配    #-i 忽略大小寫
    acl is_odc_web url_reg -i \/api\/trace\/
    acl is_in hdr_beg(host) -i qa.in66.com  #匹配客戶端請求的域名
   

    use_backend javamc_server if is_javamc 
    use_backend doc_web_server if is_odc_web
   default_backend in_server

backend m_server
mode tcp
contimeout 500000
srvtimeout 600000
option tcplog
balance roundrobin
stick-table type ip size 2000k expire 30m
stick on src
server server-123 127.0.0.1:9530

backend mc_server
mode http
balance roundrobin
option http-server-close
#option httpchk GET /ip.php
cookie JSESSIONID prefix
server web-107 127.0.0.1:8081 check inter 50000 fall 2 rise 5
backend story_web_server
mode http
balance roundrobin
option http-server-close
#option httpchk GET /ip.php
cookie JSESSIONID prefix #如果客戶端只支援一個cookie,並且伺服器上的應用程式已經對返回設定了cookie,HAProxy設定此選項可以改寫應用程式設定的cookie資訊,把伺服器的資訊新增到原cookie中去。
server web-107 127.0.0.1:8191 check inter 50000 fall 2 rise 6

backend ncapi_server
mode http
balance roundrobin
option http-server-close
option httpchk GET /check.jsp HTTP/1.1\r\nHost:\ in.itugo.com
server java-61 127.0.0.1:8084 check inter 50000 fall 2 rise 5</pre>

參考1
參考2
參考3

p

相關文章