2011年6月8日水曜日

HAProxyのインストール

スズキです。

"yum"で下記のように簡単にインストールできます。

# yum -y install haproxy

設定ファイル(/etc/haproxy/haproxy.cfg)はデフォルトのものを
下記のように少し簡略化して使っています。

global
    log         127.0.0.1 local2 
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

defaults
    mode        http
    log         global
    option      dontlognull
    option      httpclose
    option      httplog
    option      forwardfor
    option      redispatch
    timeout connect 10000
    timeout client 300000
    timeout server 300000
    maxconn     60000
    retries     3

frontend  main *:80 # 待ち受けポートは80にしています。
    default_backend web
   
backend web
    balance roundrobin
    # YahooとGoogleに交互に振り分けています。
    server  web1 www.yahoo.co.jp:80  check
    server  web2 www.google.co.jp:80 check

実際にTelnetでアクセスしてみると、まずはYahooに振り分けられました。

# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 08 Jun 2011 08:01:39 GMT
P3P: policyref="http://privacy.yahoo.co.jp/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
Expires: -1
Pragma: no-cache
Cache-Control: no-cache, private
Cache-Control: private, no-store, must-revalidate
X-XRDS-Location: http://open.login.yahoo.co.jp/openid20/www.yahoo.co.jp/xrds
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=utf-8

Connection closed by foreign host.

そして、もう一度アクセスしてみると、今度はGoogleに振り分けられています。

# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.0 200 OK
Date: Wed, 08 Jun 2011 07:56:38 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=75e2921a86d43775:FF=0:TM=1307519798:LM=1307519798:S=TysCvR86m0V_YIFD; expires=Fri, 07-Jun-2013 07:56:38 GMT; path=/; domain=.google.com
Set-Cookie: NID=47=Iwxi1a44jZbkG6QWFyl86nJ_KEBnCLP9C2R4u0fj_isgGGY-Hz2rVMZD3DawBqkO8032_TeroygbQPLoQlujf1y81ARZ57_kvPTcQI5HyixNkyh_rJpLS_V1YIjGxeAF; expires=Thu, 08-Dec-2011 07:56:38 GMT; path=/; domain=.google.com; HttpOnly
Server: gws
X-XSS-Protection: 1; mode=block
Connection: close

Connection closed by foreign host.

ということで、無事バランシングされていることが確認できました。

次はセッション維持(Cookie)まわりの確認です。
--------
http://www.suz-lab.com

0 コメント: