カテゴリ

Apache

参考URL) http://www.res-system.com/weblog/item/618 [1]

目次

【インストール】

configure オプションに以下を追加。
--enable-proxy --enable-proxy-balancer

【設定】

□ロードバランスをするサーバ(外部から接続を受けるサーバ)への設定

該当のサーバ設定(VirtualHost 内で可)に下記を追記。
参照) http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html#proxypass [2]

# フォワードプロキシ機能は無効に
ProxyRequests Off

# /test 宛のリクエストを 別途定義する 「mycluster」バックエンドサーバグループにバランシング(/test balancer://mycluster)
# バランシグ方法はリクエストごとの割り振り(lbmethod=byrequests)
# バックエンドサーバとの通信のタイムアウトは1秒(timeout=1、デフォルト0=タイムアウトしない)
# セッション維持などのために利用する確認用のcookie名はmysess(stickysession=mysess)
ProxyPass /test balancer://mycluster lbmethod=byrequests timeout=1 stickysession=mysess

# バックエンドサーバグループの定義


# 分散時の重みは10(loadfactor=10、1〜100で指定。大きな値ほど利用頻度が高くなる)
# stickysessionで指定されている名前のcookie(有効期限内)の値の最後に .srv1 がついている場合は必ずこちらに割り振る
BalancerMember  loadfactor=10 route=srv1

# 同様
BalancerMember  loadfactor=10 route=srv2

ラフラフな実験ソース

<?
$value = session_id() . ".srv1";
$timeout = time() + 10;
setcookie("mysess",$value,$timeout,'/','10.200.30.1');

$n = time();
print_r($_SESSION['test'] . "&#60;br&#62;");
print_r($n);

$_SESSION['test'] = $n ;  

?>
test 1

課題

「一意な stickysession」の動作確認

[1] http://www.res-system.com/weblog/item/618
[2] http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html#proxypass

コメント