2008年3月30日日曜日

Delegateの導入(HTTP編)

Delegateを導入します。
XenとDelegateなリバースプロキシを組み合わせて、グローバルIP1つでバーチャルホストでない複数ドメインを運用する計画。

バーチャルホストに対しての利点
・ドメインごとに環境を完全に分けられる。
・バーチャルホストだと、一部のドメインを別マシンに分離する作業が大工事になってしまうが、本方式だと超簡単に対応できる。(マイグレーションすれば作業終了)

バーチャルホストに対してのデメリット
・XenのためネットワークのI/Oパフォーマンスがボトルネックになる(以前測定済みで許容範囲と判断)
・Xenのためバージョンアップでの互換性喪失リスクがあったりする(冒険)
・管理すべき環境が増える(必要以上に細かく分けすぎないようにする)
・サーバリソースを余分に食う(物理的な分割よりは低コストと判断)

Squidでもなくmod_proxyでもなくDelegateを選んだのは、HTTPに限らずメール環境も一緒にリバースプロキシできるから。
SMTPリレーでなくリバースプロキシが良いのは、サーバの切り離しがラクだから。

まずインストール。
# wget ftp://ftp.delegate.org/pub/DeleGate/delegate9.7.7.tar.gz
# tar zxvf delegate9.7.7.tar.gz
# cd delegate9.7.7
# make

と思ったらエラー。開発環境入れてないんだった。

# yum install gcc
# yum install gcc-c++

で改めてmake
メールアドレス聞かれるので、とりあえずrootを入力してみる。
どうせ受け取らないけど。
# mkdir /usr/local/delegate
# cp src/delegated /usr/local/delegate/
# chown -R nobody:nobody /usr/local/delegate/
# cd /usr/local/delegate/

設定書く。
# vi http.conf
-P80
SERVER=http
ADMIN="root@hoge.com"
RELIABLE="*"
HTTPCONF="add-qhead:X-Forwarded-For:%a"
RELAY=proxy
CACHE="no"
LOGFILE=""
CONNECT="d:*:*"
MOUNT="/* http://www.hoge.com/* vhost=-alpha"
REACHABLE="192.168.0.9"
MOUNT="/* http://192.168.0.105/* vhost=-beta"
REACHABLE="192.168.0.105"
MOUNT="/-/ = rcode=404"
MOUNT="/-/admin/* = rcode=404"

最後の404指定は管理画面やバージョン番号の丸出しを防ぐため from DeleGateのML。
Deledateの使い方を紹介してるサイトは数あれど、これを載せてるサイトは見かけませんでした。みんな正気か!?


起動(コンソール付き)
# delegate -vv +=http.conf

起動
# delegate +=http.conf

終了
# delegate -P80 -Fkill


これで動くけれども、受け側のapacheにmod_rpafを入れてやらないとログが全部alphaになっちゃう。
http://www.nire.com/2008/02/howto-install-mod_rpaf/

0 件のコメント: