千萬級高並發負載平衡HAProxy安裝及使用樣本

來源:互聯網
上載者:User

1.HAProxy簡介

HAProxy是一個開源的,高效能的,基於TCP(四層),HTTP(七層)應用的負載平衡軟體。那HAproxy作為一個專業的負載平衡軟體,它的優點如下:

.可靠性和穩定性非常好,可以與硬體級F5負載平衡裝置相媲美

.最高可同時維護40000-50000個並發串連,單位時間內最大請求數為20000個,最大資料處理能力可達10Gbps

.支援多於8種負載平衡演算法,同時支援會話保持

.支援虛擬機器主機功能

.從1.3版本後支援拒絕串連,全透明代理,這些功能是其它的負載平衡所不具備的

.HAPRoxy擁有一個強大的伺服器狀態監控頁面,通過此頁面可即時瞭解系統狀況

.HAproxy擁有功能強大的ACL支援,給使用上帶來很大方便

HAProxy是藉助於作業系統的技術特性來實現效能最大化的,因此,在使用haproxy時對作業系統的效能調優是非常重要的

2.安裝

前往HAProxy官網下載地址http://www.haproxy.org/

官網目前最新穩定版1.7.8版本下載地址

http://www.haproxy.org/download/1.7/src/haproxy-1.7.8.tar.gz

tar zxvf haproxy-1.7.8.tar.gzcd haproxy-1.7.8make TARGET=linux26 PREFIX=/usr/local/haproxymake install PREFIX=/usr/local/haproxymkdir /usr/local/haproxy/confcp examples/option-http_proxy.cfg /usr/local/haproxy/haproxy.cfg

3.為了大家能夠看懂整個設定檔,我將貼出我的設定檔內容,裡面會有注釋協助大家理解

## demo config for Proxy mode# global        maxconn         20000#設定HAProxy進程可接受的最大並發數ulimit-n41000#linux命令列選項,等同於上參數        log             127.0.0.1 local0#全域的日誌中配置,local0 是日誌裝置 info(err,warnig,minfo,debug)為記錄層級,使用rsyslog        uid             200        gid             200#使用者和組 ,可以用uid,gid代替        chroot          /var/emptynbproc1#HAProxy啟動時可建立的進程數,配合daemon參數使用,預設只啟動一個進程,該值應小於cpu核心數。        daemon#進程後台運行,(推薦模式)defaultsmodehttp#執行個體的預設運行模式retries3#串連後端伺服器的失敗重試次數timeoutconnect10s#串連伺服器的最長等待時間,預設單位為毫秒,可使用其它時間單位timeoutclient20s#串連用戶端發送資料時最長等待時間,預設單位為毫秒,可使用其它時間單位timeoutserver30s#伺服器回應給用戶端資料發送的最長等待時間,預設單位為毫秒,可使用其它時間單位timeoutcheck5s#對後端伺服器的檢查逾時時間,預設單位為毫秒,可使用其它時間單位listenadmin_statsbind*:9188#設定監控頁面的訪問地址,該地址表示為監聽本機所有地址的9188連接埠modehttplogglobal#使用全域日誌statsrefresh 30s#監控頁面自動重新整理時間statsuri /haproxy-status#uri的訪問尾碼statsrealm welcome login\ Haproxy#文本提示資訊statsauthadmin:admin~!@#統計頁面的使用者名稱和地址,每行一個statshide-version#隱藏統計頁面的HAProxy的版本資訊statsadmin if TRUE#可手工啟動或禁用後端真實伺服器,僅在1.4.9版本後有效frontend test-proxybind*:80#定義監聽地址        mode            http        log             global        option          httplog#啟用日誌記錄optionforwardfor#擷取用戶端真實ip。通過日誌“X-Forwarded-For”查看optionhttpclose#HAProxy在完成一次請教請求串連後,將主動關閉該串連,對效能非常有協助        option          dontlognull        option          nolinger        option          http_proxy        maxconn         8000        timeout client  30s# layer3: Valid users#acl allow_host src 192.168.200.150/32acl allow_host src 192.168.10.0/24#acl 控制,運行192.168.10.0/24網段的訪問請求#acl使用方法如下#acl 自訂acl名稱 acl方法 -i [ 匹配的路徑或檔案 ]#acl allow_host src 0.0.0.0/24http-request deny if !allow_host#拒絕串連請求除allow_host外# layer7: prevent private network relaying#acl forbidden_dst url_ip 192.168.0.0/24#acl forbidden_dst url_ip 172.16.0.0/12acl forbidden_dst url_ip 192.168.20.0/24http-request deny if forbidden_dstdefault_backend test-proxy-srvbackend test-proxy-srvmode            httptimeout connect 5stimeout server  5sretries         2optionredispatch#應用於cookie保持的環境optionabortonclose#自動結束長時間串連option          nolingeroption          http_proxy#optionhttpchkGET /index.phpbalanceroundrobincookieSERVERIDserver web1192.168.10.101:8080cookieserver1 weight 6 check inter 2000 rise 2 fall 3#後端伺服器真真實位址server web2192.168.10.101:8888cookieserver2weight 6 check inter 2000 rise 2 fall 3# layer7: Only GET method is validacl valid_method        method GETacl valid_methodmethod POSThttp-request deny if !valid_method# layer7: protect bad replyhttp-response deny if { res.hdr(content-type) audio/mp3 }

4.啟動

haproxy的啟動在安裝目錄下的sbin下

haproxy -f /usr/local/haproxy.cfg

5.啟動時遇到常見的錯誤

in multi-process mode, stats will be limited to process assigned to the current request.

listen需要運行在單個進程內,需要指定預設進程,如果想解決此問題,可將全域參數nbproc設定為1

Proxy 'admin_stats': stats admin will not work correctly in multi-process mode.
[./haproxy.main()] FD limit (16384) too low for maxconn=20000/maxsock=40014. Please raise 'ulimit-n' to 40014 or more to avoid any trouble.

請設定參數ulimit-n 的值等於maxconn的2倍


6.到此haproxy的簡單負載平衡配置就設定完畢了,可通過ACL來控制7層的請求控制。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.