You are on page 1of 5

I. Ci t b cn bng ti trong mng 1. Cc phng n ci t b cn bng ti vo h thng Trong phn ny s trnh by mt s phng php ci t b cn bng ti vo h thng website.

C nhiu phng php t n gin n phc tp, ng dng trong nhiu trng hp khc nhau. Vi mt s website nh, ch c mt vi server t trong cng mng LAN, chng ta c th s dng phng php ci t n gin vi mt b cn bng ti ci t trc cc server, kt hp vi k thut cookie-insert. Trong mt h thng ln hn, trnh qu ti cho b cn bng ti, chng ta c th ci t hai b cn bng ti hot ng theo c ch active-backup, nhm m bo nu nh mt trong hai b cn bng ti b cht, vn cn mt b d phng, chc chn rng h thng lun hot ng. Kt hp vi cc phng php ny l mt s hnh thc ci t cookie v s dng cc lut ng cnh (content rules) theo yu cu ca tng website khc nhau. thy c m hnh ci t mt cch tt nht, chng ta s dng mt b cn bng ti m ngun m c sn lm m hnh ny. B cn bng ti c tn l HAProxy, c y chc nng ca mt b cn bng ti n gin. Trc khi i vo chi tit ci t b cn bng ti, th HAProxy c mt s tnh nng sau 1.1. B cn bng ti HAProxy HAProxy l mt gii php cn bng ti vi kh nng m rng cao, c ci t cho nhng website chy cc ng dng da trn TCP v HTTP. HAProxy l mt gii php m ngun m c pht trin trn h iu hnh Linux. Trong phin bn mi nht, HAProxy h tr chuyn mch ng cnh (content switchinh) cho php ngi qun tr website c th thit t cc lut ca chuyn mch trong file cu hnh. Bn cnh , HAProxy cn c s lng thut ton phn ti phong ph, kh nng ngn chn cc cng khng cn thit theo nhu cu ca ngi qun tr, h tr cc phng php ci t cookie v kh nng hot ng trong sut gip tng tc truyn dn d liu. C th k ra rt nhiu website s dng Haproxy nh redwall Firewall ti a ch http://www.redwall-firewall.com/, Exceliances ALOHA appliance ti a ch http://www.exceliance.fr/en/index.htm, http://www.loadbalancer.org/, Amazon EC2 ti a ch http://aws.amazon.com/ec2/, hay website Vit Nam nh http://www.tamtay.vn Haproxy l mt gii php rt nhanh, v ng tin cy, cung cp tnh sn sng cao, tnh nng cn bng ti v proxy cho giao thc TCP v cc ng dng da trn HTTP. N c bit ph hp cho cc trang web thu thp d liu c ti trng cao trong khi cn kin tr hoc x l Layer 7. H tr hng chc ngn kt ni r rng l rt thc t vi phn cng ngy nay. Cc ch hot ng lm cho tch hp ca n vo kin trc rt d dng v khng c ri ro, trong khi vn cung cp kh nng khng l cc my ch web d v mng, chng hn nh di y:

Haproxy l mt ng dng chy c lp, tt c nhng g ngi dng phi lm l ci t Haproxy ln mt my server v thit lp file cu hnh, trong ch r a ch ci t Haproxy v a ch cc my server. Mi server s c t cc thng s khc nhau v a ch server, cookie, trng s File cu hnh ny cng s thit lp cc thng s v timeout ca session, s lng kt ni ln nht, cookie, thut ton cn bng ti, cc lut chuyn mch ng cnh. Mt v d n gin v file cu hnh nh sau:

global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 #debug #quiet user haproxy group haproxy defaults log global mode http option httplog option dontlognull retries 3 redispatch maxconn 2000 # Number of max connections contimeout 5000 # Connection timeout clitimeout 50000 # Client timeout srvtimeout 50000 # Server timeout

listen

webfarm 192.168.1.99:80 # Haproxy address mode http stats enable # for statistics stats auth someuser:somepassword # password stats balance roundrobin # Balance in round-robin mode cookie JSESSIONID prefix # Cookie rewrite option httpclose option forwardfor option httpchk HEAD /check.txt HTTP/1.0 server webA 192.168.1.102:80 cookie A check #Server A server webB 192.168.1.103:80 cookie B check #Server B
Cc thng s c gii thch nh trong phn ch thch (sau du #). Trong , c mt vi thng s ng lu nh: listen webfarm 192.168.1.99 : 80 # Haproxy address Server ci t Haproxy a ch 192.168.1.99 : 80, listen trn cng 80, ngi dng s truy cp vo website theo a ch ny v vi h y l web-server duy nht ca website. Thng s quan trng tip theo l thut ton cn bng ti:

Balance roundrobin

# Balance in round-robin mode

B cn bng ti c ci t theo thut ton phn ti round-robin. Haproxy phin bn mi nht h tr cc thut ton phn ti a dng nh: roud-robin, least connections, uri check, v source hash. Cc website khc nhau s c th chn thut ton ph hp vi yu cu ca ngi dng hoc ti thi im c th. Thng s quan trng th ba l a ch cc server thc cha website: server webA 192.168.1.102:80 cookie A check #Server A server webB 192.168.1.103:80 cookie B check #Server B

Hai server ny c ci hai my trong cng mng LAN vi b cn bng ti, u phc v trn cng 80 v u cha cookie. Tuy hot ng kh hiu qu nhng tnh ty bin v kh nng h tr ngi pht trin ca Haproxy rt km, phn mm c vit bng ngn ng lp trnh C trn h iu hnh GNU/Linux, bin dch bng b th vin m ngun m GNU. Trong khun kh n ny, Haproxy s pht trin trn h iu hnh CentOS.

1.2 Ci t n gin vi phng php cookie-insert

Phng n n gin nht ci t Haproxy vo h thng l ci t n nh trong hnh 1.2-1. Haproxy c ci t gia ngi dng v cm webserver, ti a ch 192.168.1.1, 4 web-servers v mt database server c ci t ti cc my trong cng mng LAN vi Haproxy. Trong m hnh ny, Haproxy c ci t theo ch HTTP (mode HTTP), s dng thut ton cn bng ti weighted roud-robin (trong mt s trng hp khc, ngi qun tr h thng c th chn thut ton least connections). Haproxy s dng chn cookie vi la chn kim tra header ca d liu vo ra. Bn web-servers c ci t ti cc a ch t 192.168.1.11 n 192.168.1.14, n gin, chng ta s dng 4 server ny c cu hnh tng ng nhau v do trng s ca chng l ging nhau. Vi gi s mi server c s lng kt ni ln nht l 4096, v mi server c cookie l tn ca chng.

H 2.1-1 M hnh cn bng ti n gin vi mt b cn bng ti Trong file cu hnh ca haproxy phi ch r a ch nhn yu cu t pha ngi dng (haproxy), a ch cc web-server v ch nh r phng php dng cookie. Cc thng s c m t nh sau: #... listen webfarm 192.168.1.1:80 mode http balance roundrobin cookie SERVERID insert indirect

option httpchk HEAD /index.html HTTP/1.0 server webA 192.168.1.11:80 maxconn 4096 cookie A check server webB 192.168.1.12:80 maxconn 4096 cookie B check server webC 192.168.1.13:80 maxconn 4096 cookie C check server webD 192.168.1.14:80 maxconn 4096 cookie D check #... s

You might also like