銆?1CTO.com 鐙鐗圭ǹ銆戣蔣浠惰礋杞藉潎琛′竴鑸氳繃涓ょ鏂瑰紡鏉ュ疄鐜幫細(xì)鍩轟簬鎿嶄綔緋葷粺鐨勮蔣璐熻澆瀹炵幇鍜屽熀浜庣涓夋柟搴旂敤鐨勮蔣璐熻澆瀹炵幇銆侺VS灝辨槸鍩轟簬Linux鎿嶄綔緋葷粺瀹炵幇鐨勪竴縐嶈蔣璐熻澆錛孒AProxy灝辨槸寮婧愮殑騫朵笖鍩轟簬絎笁搴旂敤瀹炵幇鐨勮蔣璐熻澆銆?/p>
HAProxy鐩告瘮LVS鐨勪嬌鐢ㄨ綆鍗曞緢澶氾紝鍔熻兘鏂歸潰涔熷緢涓板瘜銆傚綋 鍓嶏紝HAProxy鏀寔涓ょ涓昏鐨勪唬鐞嗘ā寮?"tcp"涔熷嵆4灞傦紙澶у鐢ㄤ簬閭歡鏈嶅姟鍣ㄣ佸唴閮ㄥ崗璁氫俊鏈嶅姟鍣ㄧ瓑錛夛紝鍜?灞傦紙HTTP錛夈傚湪4灞傛ā寮?涓嬶紝HAProxy浠呭湪瀹㈡埛绔拰鏈嶅姟鍣ㄤ箣闂磋漿鍙戝弻鍚戞祦閲忋?灞傛ā寮忎笅錛孒AProxy浼?xì)鍒嗘瀽鍗忚锛岒q朵笖鑳介氳繃鍏佽銆佹嫆緇濄佷氦鎹€佸鍔犮佷慨鏀規(guī)垨鑰呭垹闄よ姹?(request)鎴栬呭洖搴?response)閲屾寚瀹氬唴瀹規(guī)潵鎺у埗鍗忚錛岃繖縐嶆搷浣滆鍩轟簬鐗瑰畾瑙勫垯銆?/p>
鎴戠幇鍦ㄧ敤HAProxy涓昏鍦ㄤ簬瀹冩湁浠ヤ笅浼樼偣錛岃繖閲屾垜鎬葷粨涓嬶細(xì)
涓銆?/strong>鍏嶈垂寮婧愶紝紼沖畾鎬т篃鏄潪甯稿ソ錛岃繖涓彲閫氳繃鎴戝仛鐨勪竴浜涘皬欏圭洰鍙互鐪嬪嚭鏉ワ紝鍗旽aproxy涔熻窇寰椾笉閿欙紝紼沖畾鎬у彲浠ヤ笌LVS鐩稿緹庯紱
浜屻?/strong>鏍規(guī)嵁瀹樻柟鏂囨。錛孒AProxy鍙互璺戞弧10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express)錛岃繖涓綔涓鴻蔣浠剁駭璐熻澆鍧囪 錛屼篃鏄瘮杈冩儕浜虹殑錛?/p> 涓夈?/strong>HAProxy鍙互浣滀負(fù)MySQL銆侀偖浠舵垨鍏跺畠鐨勯潪web鐨?strong>璐熻澆鍧囪 錛屾垜浠父鐢ㄤ簬瀹冧綔涓篗ySQL(璇?璐熻澆鍧囪 錛?/p> 鍥涖?/strong>鑷甫寮哄ぇ鐨勭洃鎺ф湇鍔″櫒鐘舵佺殑欏甸潰錛屽疄闄呯幆澧冧腑鎴戜滑緇撳悎Nagios榪涜閭歡鎴栫煭淇℃姤璀︼紝榪欎釜涔熸槸鎴戦潪甯稿枩嬈㈠畠鐨勫師鍥犱箣涓錛?/p> 浜斻?/strong>HAProxy鏀寔铏氭嫙涓繪満銆?/p> 瀹為獙鐜涔熷緢綆鍗曪細(xì) 鍏蜂綋瀹夎鍙?qiáng)閰嵕|枃妗e涓嬶細(xì) 涓銆丠AProxy鐨勪笅杞藉強(qiáng)瀹夎榪囩▼錛?/p> 鍐呭 濡備笅錛?/p> global defaults listen web_proxy 192.168.4.192:80 閰嶇疆鏂囦歡鍒氫粠鏈嶅姟鍣ㄤ笂copy涓嬫潵鐨勶紝淇濊瘉鍙敤銆傝繖閲屾湁涓簨鎯呰鏄庝竴涓嬶紝鏈夋椂鍊欐垜浠繘鍏ラ〉闈?span style="color: #0000ff;">http://192.168.4.192/灝變細(xì)鎶ュ涓嬮敊璇細(xì) 503 Service UnavailableNo server is available to handle this request. option httpchk HEAD /check.txt HTTP/1.0 姝ら棶棰樺嚭鍦ㄨ繖鍙ヨ瘽涓婇潰錛屽畠鐨勬剰鎬濇槸Haproxy浼?xì)鍒ゆ柇浣犵殑鍚庣web鐨勬牴涓婂瓨鍦╟heck.txt娌℃湁錛屼互姝や綔涓篽aproxy-status鐨勭洃鎺х姸鎬佷緷鎹紝灝嗗畠#鎺夊嵆鍙紱濡傛灉鏄敓浜х幆澧冿紝浣犲彲灝哻heck.txt鏀逛負(fù)index.jsp鎴杋ndex.php鍗沖彲錛?/p> 鍙﹀錛屽緩璁厤緗竴涓狧AProxy鐨勫惎鍔ㄣ佸叧闂侀噸鍚剼鏈紝鏀懼湪/etc/init.d涓嬶紝鎴戜滑鍦ㄥ鉤鏃剁殑宸ヤ綔涓簲璇ュ吇鎴愪竴涓範(fàn)鎯紝鏈嶅姟鍣ㄧ殑鍚姩鎴栭噸鍚簲璇ユ槸鏈綆鍗曠殑錛屼竾涓鍒頒簡鐢熶駭鐜涓嬪嚭閿欐椂錛屾垜浠彲浠ヤ互鏈蹇殑鏂瑰紡鍚姩錛屽鏋滀笉鐢ㄨ剼鏈殑璇濓紝鎴戜滑灝辮灝濊瘯浠ュ涓嬫柟寮忓惎鍔細(xì) 浠ヤ笅鑴氭湰鐢熸垚鍚庯紝鎴戜滑鐩存帴鍙互鐢?etc/init.d/haproxy start鏉ュ惎鍔℉AProxy鏈嶅姟浜嗐?/p> #!/bin/bash start() stop() start) stop) restart) *) 鎴戜滑鍦‵irefox鎴朓E涓婅緭鍏?span style="color: #0000ff;">http://192.168.4.192 灝卞彲浠ヨ疆璇㈢殑鐪嬪埌鍚庣鐨剋eb鐨勯〉闈簡錛屽彟澶栨垜浠彲浠ラ殢鏃剁洃鎺ч〉闈?span style="color: #0000ff;">http://192.168.4.192/haproxy-status/錛屾晥鏋滃浘濡備笅錛?/p> 鍙﹀錛屽鏋滆鍋欻AProxy鐨勯珮鍙敤錛屾垜鎺ㄨ崘鐢℉AProxy+Keepalived錛岀綉涓婃垚鍔熺殑瀹変緥涔熸湁璁稿錛屽ぇ瀹跺彲浠oogel瀛︿範(fàn)涓嬶紝濡傛灉浣犲姝ょ瘒鏂囩珷鏈夌枒闂垨鍏跺畠錛屽笇鏈涢氳繃鎴戝湪51cto鐨勫崥瀹笌鎴戜氦嫻?a style="color: #004276;">http://andrewyu.blog.51cto.com(鎶氱惔鐓厭)銆?/p> 銆?1CTO.com鐙鐗圭ǹ錛岄潪緇忔巿鏉冭阿緇濊漿杞斤紒鍚堜綔濯掍綋杞澆璇鋒敞鏄庡師鏂囧嚭澶勫強(qiáng)鍑哄錛併?/p>HAProxy IP:192.168.4.192 Centos5.5-64bit
Web1 IP:192.168.4.45 Centos5.4-64bit
Web2 IP:192.168.21.45 FreeBSD8.0-64bitwget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz
make TARGET=linux26 prefix=/usr/local/haproxy install
cd /usr/local/haproxy
mkdir conf
cd conf
vim haproxy.conf
log 127.0.0.1 local0
maxconn 4096
chroot /usr/local/haproxy
uid 501
gid 501
daemon
nbproc 1
pidfile /usr/local/haproxy/logs/haproxy.pid
debug
log 127.0.0.1 local3
mode http
option httplog
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2
maxconn 2000
balance roundrobin
stats uri /haproxy-stats
contimeout 5000
clitimeout 50000
srvtimeout 50000
#option httpchk HEAD /index.php HTTP/1.0
server web1_192.168.21.45 192.168.21.45:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server web2_192.168.4.45 192.168.4.45:80 cookie app1inst2 check inter 2000 rise 2 fall 5/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
BASE_DIR="/usr/local/haproxy"
ARGV="$@"
{
echo "START HAPoxy SERVERS"
$BASE_DIR/sbin/haproxy -f $BASE_DIR/conf/haproxy.cfg
}
{
echo "STOP HAPoxy Listen"
kill -TTOU $(cat $BASE_DIR/logs/haproxy.pid)
echo "STOP HAPoxy process"
kill -USR1 $(cat $BASE_DIR/logs/haproxy.pid)
}
case $ARGV in
start
ERROR=$?
;;
stop
ERROR=$?
;;
stop
start
ERROR=$?
;;
echo "hactl.sh [start|restart|stop]"
esac
exit $ERROR



