Haproxy 实现Apache的负载均衡
生活随笔
收集整理的這篇文章主要介紹了
Haproxy 实现Apache的负载均衡
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Haproxy:?172.16.100.128
Node1:????172.16.100.101????web1
Node2:????172.16.100.102????web2
安裝haproxy
#?yum?install?haproxy?-y
#?rpm?-ql?haproxy
/etc/haproxy
/etc/haproxy/haproxy.cfg?#主配置文件
/etc/logrotate.d/haproxy
/etc/rc.d/init.d/haproxy?#?啟動腳本
/usr/bin/halog
/usr/bin/iprange
/usr/sbin/haproxy
#?cat?/ect/haproxy/haproxy.cfg
#---------------------------------------------------------------------
#?Example?configuration?for?a?possible?web?application.??See?the
#?full?configuration?options?online.
#
#???http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------
#---------------------------------------------------------------------
#?Global?settings
#---------------------------------------------------------------------
global#?to?have?these?messages?end?up?in?/var/log/haproxy.log?you?will#?need?to:##?1)?configure?syslog?to?accept?network?log?events.??This?is?done#????by?adding?the?'-r'?option?to?the?SYSLOGD_OPTIONS?in#????/etc/sysconfig/syslog##?2)?configure?local2?events?to?go?to?the?/var/log/haproxy.log#???file.?A?line?like?the?following?can?be?added?to#???/etc/sysconfig/syslog##????local2.*???????????????????????/var/log/haproxy.log#log?????????127.0.0.1?local2chroot??????/var/lib/haproxypidfile?????/var/run/haproxy.pidmaxconn?????4000user????????haproxygroup???????haproxydaemon#?turn?on?stats?unix?socketstats?socket?/var/lib/haproxy/stats
#---------------------------------------------------------------------
#?common?defaults?that?all?the?'listen'?and?'backend'?sections?will
#?use?if?not?designated?in?their?block
#---------------------------------------------------------------------
defaultsmode????????????????????httplog?????????????????????globaloption??????????????????httplogoption??????????????????dontlognulloption?http-server-closeoption?forwardfor???????except?127.0.0.0/8option??????????????????redispatchretries?????????????????3timeout?http-request????10stimeout?queue???????????1mtimeout?connect?????????10stimeout?client??????????1mtimeout?server??????????1mtimeout?http-keep-alive?10stimeout?check???????????10smaxconn?????????????????3000
listen?stats
mode?http
bind?*:1080
stats?enable
stats?hide-version
stats?uri/haproxyadmin?stats
stats?realmHaproxy\?Statistics
stats?authadmin:admin
stats?admin?if?TRUE
frontend?web
bind?*:80
log?global
option?httpclose
option?logasap
option?dontlognull
capture?request?header?Host?len?20
capture?request?header?Referer?len?60
default_backend?servers
backend?servers
balance?roundrobin
server?web1?172.16.100.101:80?check?maxconn?3000
server?web2?172.16.100.102:80?check?maxconn?3000
#?haproxy??-c?-f?/etc/haproxy/haproxy.cfg?#?檢查配置文件
#?service?haproxy?start
訪問:http://172.16.100.128兩臺web可以輪詢切換
訪問監控狀態頁面:http://172.16.100.128:1080/haproxyadmin?stats?
以下關于haproxy的調度算法:
定義負載均衡算法,可用于“defaults”、“listen”和“backend”。<algorithm>用于在負載均衡場景中挑選一個server,其僅應用于持久信息不可用的條件下或需要將一個連接重新派發至另一個服務器時。支持的算法有:roundrobin:基于權重進行輪叫,在服務器的處理時間保持均勻分布時,這是最平衡、最公平的算法。此算法是動態的,這表示其權重可以在運行時進行調整,不過,在設計上,每個后端服務器僅能最多接受4128個連接;static-rr:基于權重進行輪叫,與roundrobin類似,但是為靜態方法,在運行時調整其服務器權重不會生效;不過,其在后端服務器連接數上沒有限制;leastconn:新的連接請求被派發至具有最少連接數目的后端服務器;在有著較長時間會話的場景中推薦使用此算法,如LDAP、SQL等,其并不太適用于較短會話的應用層協議,如HTTP;此算法是動態的,可以在運行時調整其權重;source:將請求的源地址進行hash運算,并由后端服務器的權重總數相除后派發至某匹配的服務器;這可以使得同一個客戶端IP的請求始終被派發至某特定的服務器;不過,當服務器權重總數發生變化時,如某服務器宕機或添加了新的服務器,許多客戶端的請求可能會被派發至與此前請求不同的服務器;常用于負載均衡無cookie功能的基于TCP的協議;其默認為靜態,不過也可以使用hash-type修改此特性;uri:對URI的左半部分(“問題”標記之前的部分)或整個URI進行hash運算,并由服務器的總權重相除后派發至某匹配的服務器;這可以使得對同一個URI的請求總是被派發至某特定的服務器,除非服務器的權重總數發生了變化;此算法常用于代理緩存或反病毒代理以提高緩存的命中率;需要注意的是,此算法僅應用于HTTP后端服務器場景;其默認為靜態算法,不過也可以使用hash-type修改此特性;url_param:通過<argument>為URL指定的參數在每個HTTPGET請求中將會被檢索;如果找到了指定的參數且其通過等于號“=”被賦予了一個值,那么此值將被執行hash運算并被服務器的總權重相除后派發至某匹配的服務器;此算法可以通過追蹤請求中的用戶標識進而確保同一個用戶ID的請求將被送往同一個特定的服務器,除非服務器的總權重發生了變化;如果某請求中沒有出現指定的參數或其沒有有效值,則使用輪叫算法對相應請求進行調度;此算法默認為靜態的,不過其也可以使用hash-type修改此特性;hdr(<name>):對于每個HTTP請求,通過<name>指定的HTTP首部將會被檢索;如果相應的首部沒有出現或其沒有有效值,則使用輪叫算法對相應請求進行調度;其有一個可選選項“use_domain_only”,可在指定檢索類似Host類的首部時僅計算域名部分(比如通過www.magedu.com來說,僅計算magedu字符串的hash值)以降低hash算法的運算量;此算法默認為靜態的,不過其也可以使用hash-type修改此特性;rdp-cookie
轉載于:https://blog.51cto.com/diudiu/1576143
總結
以上是生活随笔為你收集整理的Haproxy 实现Apache的负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2014年5月生日会
- 下一篇: Ubuntu 下修改 Could not