haproxy配置說明 三

###########HAProxy的日誌記錄內容配置##########

capture request header Host len 40

capture request header Content-Length len 10

capture request header Referer len 200

capture response header Server len 40

capture response header Content-Length len 10

capture response header Cache-Control len 8

 

####################acl策略定義#########################

#如果請求的域名滿足正則表達式返回true -i是忽略大小寫

acl denali_policy hdr_reg(host) -i ^(www.gemini.taobao.net|my.gemini.taobao.net|auction1.gemini.taobao.net)$

#如果請求域名滿足trade.gemini.taobao.net 返回 true -i是忽略大小寫

acl tm_policy hdr_dom(host) -i trade.gemini.taobao.net

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

acl invalid_req url_sub -i sip_apiname=

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

acl timetask_req url_dir -i timetask

#當請求的headerContent-length等於0時返回 true

acl missing_cl hdr_cnt(Content-length) eq 0

 

######################acl策略匹配相應###################

##當請求中headerContent-length等於0 阻止請求返回403

block if missing_cl

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

block if !invalid_req || timetask_req 

#當滿足denali_policy的策略時使用denali_serverbackend

use_backend denali_server if denali_policy

#當滿足tm_policy的策略時使用tm_serverbackend

use_backend tm_server if tm_policy

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

reqisetbe ^Host:\ img dynamic

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

reqisetbe ^[^\ ]*\ /admin/stats stats

#以上都不滿足的時候使用默認mms_serverbackend

default_backend mms_server

#HAProxy錯誤頁面設置

errorfile 400 /home/admin/haproxy/errorfiles/400.http

errorfile 403 /home/admin/haproxy/errorfiles/403.http

errorfile 408 /home/admin/haproxy/errorfiles/408.http

errorfile 500 /home/admin/haproxy/errorfiles/500.http

errorfile 502 /home/admin/haproxy/errorfiles/502.http

errorfile 503 /home/admin/haproxy/errorfiles/503.http

errorfile 504 /home/admin/haproxy/errorfiles/504.http

##########backend的設置##############

backend mms_server

#http7層模式

mode http

#負載均衡的方式,roundrobin平均方式

balance roundrobin

#允許插入serveridcookie中,serverid後面可以定義

cookie SERVERID

#心跳檢測的URL,HTTP/1.1¥r¥nHost:XXXX,指定了心跳檢測HTTP的版本,XXX爲檢測時請求

#服務器的request中的域名是什麼,這個在應用的檢測URL對應的功能有對域名依賴的話需要設置

option httpchk GET /member/login.jhtml HTTP/1.1\r\nHost:member1.gemini.taobao.net

#服務器定義,cookie 1表示serverid1check inter 1500 是檢測心跳頻率

#rise 33次正確認爲服務器可用,fall 33次失敗認爲服務器不可用,weight代表權重

server mms1 10.1.5.134:80 cookie 1 check inter 1500 rise 3 fall 3 weight 1

server mms2 10.1.6.118:80 cookie 2 check inter 1500 rise 3 fall 3 weight 2

backend denali_server

mode http

#負載均衡的方式,source根據客戶端IP進行哈希的方式

balance source

#但設置了backup的時候,默認第一個backup會優先,設置option allbackups

#所有備份服務器權重一樣

option allbackups

#心跳檢測URL設置

option httpchk GET /mytaobao/home/my_taobao.jhtml HTTP/1.1\r\nHost:my.gemini.taobao.net

#可以根據機器的性能不同,不使用默認的連接數配置而使用自己的特殊的連接數配置

#minconn 10 maxconn 20

server denlai1 10.1.5.114:80 minconn 4 maxconn 12 check inter 1500 rise 3 fall 3

server denlai2 10.1.6.104:80 minconn 10 maxconn 20 check inter 1500 rise 3 fall 3

#備份機器配置,正常情況下備機不會使用,當主機的全部服務器都down的時候備備機會啓用

server dnali-back1 10.1.7.114:80 check backup inter 1500 rise 3 fall 3

server dnali-back2 10.1.7.114:80 check backup inter 1500 rise 3 fall 3

backend tm_server

mode http

#負載均衡的方式,leastconn根據服務器當前的請求數,取當前請求數最少的服務器

balance leastconn

option httpchk GET /trade/itemlist/prepayCard.htm HTTP/1.1\r\nHost:trade.gemini.taobao.ne

server tm1 10.1.5.115:80 check inter 1500 rise 3 fall 3

server tm2 10.1.6.105:80 check inter 1500 rise 3 fall 3

######reqisetbe自定義關鍵字匹配backend部分#######################

backend dynamic

mode http

balance source

option httpchk GET /welcome.html HTTP/1.1\r\nHost:www.taobao.net

server denlai1 10.3.5.114:80 check inter 1500 rise 3 fall 3

server denlai2 10.4.6.104:80 check inter 1500 rise 3 fall 3

backend stats

mode http

balance source

option httpchk GET /welcome.html HTTP/1.1\r\nHost:www.taobao.net

server denlai1 10.5.5.114:80 check inter 1500 rise 3 fall 3

server denlai2 10.6.6.104:80 check inter 1500 rise 3 fall 3

3. HA-Proxy的壓力測試結果

簡單的壓力測試採用Apache ab500併發用戶,10w的請求總數。

總耗時(s)

TPS(#/sec)

HA-2Node

21.387

4675.61

HA-5Node

27.371

3653.37

HA-2Node爲配置了兩個節點作爲後段的服務節點,HA-5Node爲配置了5個節點作爲後端的服務處理節點。上面結果看到2個節點的HA5個節點的速度來的快。可以確定的是

HAProxy的性能是跟隨backend的數量增加而下降,所以當backend節點過多時可以考慮通過拆分到多臺HAProxy來提高性能。

5. 相關資源

HAProxy官方網站http://haproxy.1wt.eu

HAProxy 中文網站 http://cn.haproxy.org/

(Budichina.COM 編號 #194 創建於 2010-03-15 12:07:56)

 

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