|
||||||||||||||
| 前のページ 1 2 | ||||||||||||||
| mod_proxy_balancerの設定方法 | ||||||||||||||
|
mod_proxy_balancerを使ったリバースproxyの設定は以下のようになります。 まず、コンパイル時にmod_proxy_balancerを有効にしてください。先ほどのコンパイルオプションに、リスト3のように--enable-proxy-balancerのオプションを追加すればOKです。 リスト3:mod_proxy_balancerを有効にする
$ ./configure --prefix=/usr/local/httpd_docs \
次いでApacheの設定です。先ほどのmod_rewriteの設定をリスト4のように書き換えます。 リスト4:mod_rewriteの設定を変更
<Proxy balancer://bookmark>
<Proxy>…</Proxy>の中に、BalancerMemberとして複数構えるアプリケーションサーバーのURIを指定します。ここでは192.168.0.10と192.168.0.11が2台のアプリケーションサーバーのアドレスであると想定した設定になっています。 URIの後ろにあるloadfactorパラメータは、負荷分散の割合を調整するパラメータです。ここでは両者を同一の値にしているので、それぞれ1/2の確率で振り分けが行われます。この値に差をつけることで他方の受け取り確率を上げたりすることも可能です。アプリケーションサーバーのそれぞれのマシンスペックに差がある場合などに役立つことでしょう。詳しくはマニュアルを参照してください。 そして、バックエンドへの転送の設定を(1)のように記述します。Proxyディレクティブで指定したbalancer://bookmarkというURIがRewriteRuleの中で利用でき、そのURIはBalancerMemberで指定したURIとして展開される、という具合です。分かりやすいですね。 新たにアプリケーションサーバーを一台追加する場合は、BalancerMemberにそのサーバーのURIを追加するだけで完了です。Webサーバーを増設するのは簡単だというのがお分かりいただけるかと思います。 |
||||||||||||||
| リバースproxyは増設しなくて良いのか | ||||||||||||||
|
ところで、アプリケーションサーバーを増設するのが簡単なのは分かったとして、リバースproxyの負荷が高くなったらどうするの? と思われた方もいるかもしれません。 実は、リバースproxyの負荷はそうそう高くはならないので増設の必要性があまりない、というのがその答えです。はてなブックマークは現在月間5,000万PVですがリバースproxyはまだ1台で、リソース的にもまだまだ余裕があります。もちろんリバースproxyのハードウェアもPentium 4で組まれたごくごく普通のPCサーバーです。 さて、リバースproxyはそう慌てて増設しなくても良いわけですが、1台ですと故障したときに困りますね。いわゆる、そこが故障するとサービスが止まってしまう箇所SPOF(Single Point Of Failure)です。これに対する対応策はいろいろあって、例えば、
といったことが考えられます。本稿執筆時点2006年6月において、はてなブックマークでは前者の方法を取っています。より耐障害性を高めるのであればリバースproxyの手前のバランサーは冗長性を確保できるものが良いでしょう。ソフトウェアであれば、例えばUltraMonkeyなどが利用できるのではないかと思います。 なお2006年10月現在はこの構成を変更し、後者のLinuxのLVSという、カーネルモジュールとして動作するソフトウェアロードバランサを用いてリバースproxyの冗長性確保を行っています。またkeepalivedという別のソフトウェアと組み合わせることでLVS自身の耐障害性を高めることも行っています。 |
||||||||||||||
|
前のページ 1 2 |
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||

