なんかてきとうに

わりと個人的な忘備録的ですよ。

お勉強

ロードバランサ HAProxy

HAProxyはL4(tcp) / L7(http) 対応のロードバランサ。

.cgiアプリケーションサーバ群に、 .jpgなどの静的コンテンツをコンテンツサーバ群に割り振ったり出来る。

コンフィグファイルは /etc/haproxy/haproxy.cfg

コンフィグファイルは

  • global (HAProxy全体の設定)

  • default (listen,frontend,backendの標準設定)

  • listen (frontend,backend両方の機能を1つのセクションで設定)

  • frontend (待ちうけ,転送先の選択,frontendで転送するbackendを指定)

  • backend (転送先の設定)

からなっている。

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

こんな感じで設定項目と設定内容をスペースで区切って記載する。

セクションに所属していることを示すようにインデントをする。

listenセクションは省略

frontend main
 bind 0.0.0.0:80
 mode http
 timeout client 1s
 default_backend hogehoge-backend
 option forwardfor

frontend の後ろにユニークな名前をつける。

mode は tcp http どちらで動かすか。

default_backend はアクセスが来たときに標準で使用するbackendを記載する。

backend hogehoge-backend
 mode http
 timeout server 2s
 option httpchk GET /check HTTP/1.0
 option http-keep-alive
 balance roundrobin
 server web1 192.168.10.5:80 check
 server web2 192.168.10.6:80 check

backend の後ろにもユニークな名前をつける、frontendからはこの名前で使うbackendを指定する。

balance でロードバランスアルゴリズムを指定する。主なものは下記(ver 1.5.8)

  • roundrobin

  • static-rr

  • leastconn

  • first

  • source

  • uri

  • uri_param

option httpchkはserverが生きているかどうかhttpでチェックする。ここではGETメソッドで /checkにアクセスしている。応答があれば生きている、応答がなければ死んでいると判断して死んでいるサーバにはロードバランスしなくなる。