設定編ではフロントエンドのリバースプロキシとバックエンドのCGIサーバの設定を行ないました。今回は、サイトの負荷が大きくなってきた時にバックエンドのサーバを複数台にする設定を説明します。イメージ図としては下記のような感じです。バックエンドの準備まずは負荷分散が確認できるようにバックエンドのサーバを2台に増やします。作成し、このhttpd_backend_8081.confがListenするポートを以下のように8080から8081にします。.plポートを変更したら、下記のコマンドでこの8081でListenするApacheを立ち上げておきます。start8080のサーバも停止しているようであれば起動しておきましょう。startリバースプロキシで負荷分散の設定バックエンドのサーバを2台に増設したら、その2台にリクエストを振り分けられるようにフロントエンドのリバースプロキシを設定し直します。やり方は色々ありますが、まずは一番シンプルな「リクエストをランダムに2台に振り分ける」というやり方を試してみたいと思います。振り分ける設定でした。今回はこの部分を変更して、localhost:8080とlocalhost:8081に振り分けるように設定します。rnd:/usr/local/httpd_proxy_2.2.11/conf/server.txtという設定をRewriteRuleの前に追加し、RewriteRuleを下記のように変更します。[L,P,QSA]つまり前回のhttpd.confの設定との差分は下記のようになります。いうファイルを作成します。/usr/local/httpd_proxy_2.2.11/conf/server.txtこれらの設定は何を意味するかというとRewriteRuleで指定したパターンにマッチするリクエストがあった場合、RewriteMapで定義したサーバのどれか1台にランダムでリクエストを転送するということです。localhost:8080|localhost:8081となっています。して参照しているわけです。前回の設定では1台にしかリクエストを転送していませんでしたが、このような設定をすることで「どれか1台にランダムで」という形で負荷分散することが可能になります。mod_proxyサーバを再起動します。何回かアクセスしてみましょう(exampleの部分は自身のホスト名に適宜変更してください)。両方に下記のようなログが残っているはずです。2台のバックエンドのサーバでの負荷分散環境が構築できたということになります。(なお、例によってそのままの設定だとセキュリティに問題があるので、作業が終了したら起動したApacheのプロセスは止めておくことをお奨めします)まとめmod_proxyを使った負荷分散環境の構築は、バックエンドのサーバさえしっかり準備ができていればリバースプロキシの設定はかなり簡単だったのではないでしょうか。このような複数台のバックエンドのサーバにリクエストを振り分けるような設定は負荷分散としても有効ですが、その他の使い道として「バックエンドのサーバを1台メンテナンスで一時的に止めたい」というような時にサイトを止めることなくメンテナンスが可能になります。(具体的には、server.txtからメンテナンス対象のサーバを削除するだけでリクエストが転送されなくなります)このように、リバースプロキシの用途は単純な負荷分散以外にもあるので、設定の仕方を知っておくだけでサイトの運用に非常に役立つと思います。