主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

mod_proxy_balancer を使ってアプリケーションサーバと接続する

最終更新日 2010-01-04 07:14:22 (1年以上前の記事です)

Apache のロードバランサーモジュールを使って、 Apache を proxy を go-lang で作った独自アプリケーションサーバと接続させる設定をした時のメモ。

基本的には RoR アプリを作成した時に Apache のバックに Mongrel を何台が走らせたりする時に使う方法と一緒。
忘れないようにメモ。

apache proxy_balander モジュールのインストール

もし mod_proxy がインストールされていない場合はインストールする。

コンパイル

基本的にはapache2 にモジュールを追加するを参考。
まず apache の proxy モジュールディレクトリへ行くと分かる通り、ソースファイルはいくつもあり、単体でコンパイルしてインストールしても、 apache 起動時にリンカーエラーが出る。なのでまずまとめてコンパイルする。

$ cd ~/Documents/Build/httpd-2.2.11/modules/proxy
$ /usr/local/bin/apxs -c *.c

そして次に、個別にインストールしたいモジュールをインストール。

# /usr/local/bin/apxs -ian proxy mod_proxy.la
# /usr/local/bin/apxs -ian proxy_http mod_proxy_http.la
# /usr/local/bin/apxs -ian proxy_balancer mod_proxy_balancer.la

これでモジュールが modules ディレクトリにコピーされると同時に、モジュールをロードするための適当なコメントが httpd.conf かもしくはそれ同等のファイルに書き込まれるはず。
こんな感じです。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

Proxy の設定

あくまでとりあえず暫定の設定方法ですが、ロードバランサーとは言ってるものの、特定のバーチャルドメインに接続した際にそれをアプリケーションサーバの方に飛ばす設定のみをここでは行う。

<VirtualHost *:80>
    ServerName go.localdomain
    <Proxy balancer://mycluster>
        BalancerMember http://127.0.0.1:5080
    </Proxy>
    ProxyPass / balancer://mycluster/
    ErrorLog "/usr/local/logs/go.localdomain-error_log"
    CustomLog "/usr/local/logs/go.localdomain-access_log" common
</VirtualHost>

これでブラウザで http://go.localdomain にアクセスした際にアプリケーションサーバのレスポンスが得られれば成功。

最終更新日 2010-01-04 07:14:22

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank1, rank2, rank3, rank7, rank9, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google