15
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Apacheによる負荷分散構成

Posted at

はじめに

Apache 2.4 において mod_proxy_balancer でリクエストを配下のWebサーバーに分散させる方法について 簡単にテストした内容をまとめています。

システム構成図

mod_proxy_balancer.png

/balancer にアクセスが来ると、バックエンドのservice1 ~ 3 に順番にリクエストを振り分ける

  • 動作確認では localhost にて試したが、バックエンドは別サーバーでも問題ない
  • 今回は service1 ~ 3 に Hello World という文字列を返すだけのHTTPサーバーを用意した

設定

httpd.conf

(1) httpd-balancer.conf の作成

バランサー設定を一箇所にまとめるよう、設定ファイルを作成

ProxyPass /balancer balancer://mycluster lbmethod=byrequests timeout=1
<Proxy balancer://mycluster>
  BalancerMember http://127.0.0.1:8081 loadfactor=1
  BalancerMember http://127.0.0.1:8082 loadfactor=1
  BalancerMember http://127.0.0.1:8083 loadfactor=1
</Proxy>

<Location /manager>
  SetHandler balancer-manager
</Location>

/balancer にアクセスがあると <Proxy> に登録された BalancerMember にリクエストを振り分ける。

loadfactor は重み付けで、数字が大きいメンバーに優先してリクエストを振り分けられる。

/manager にアクセスがあると、 mod_proxy_balancer の管理画面が表示される。
各メンバーのステータスやリクエストの分散状況などが表示される。

balancer-manager.png

(2) httpd.conf にて以下のモジュールを有効にする

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule status_module modules/mod_status.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

今回は単純にリクエストを順に振り分けるので、 mod_lbmethod_byrequests.so を有効にする。

httpd-balancer.confProxyPass にて lbmethod=byrequests 以外のメソッドを使用する場合は、該当するモジュールのコメントアウトを外す。

(3) httpd-balancer.conf を読み込む

httpd.conf の末尾で httpd-balancer.conf を読み込むように Include を追加する。

Include conf/extra/httpd-proxy-balancer.conf

(4) Apacheを再起動する

(5) 動作確認

  • /balancer にアクセスし、Hello World が表示されることを確認
  • 何度かブラウザのリロードを繰り返し、各ダミーサーバーに順繰りにリクエストが来ることを確認
  • service1 ~ 3 のいずれかを停止した状態でブラウザのリロードを繰り返すと、Activeなサーバーのみにリクエストが来ることを確認

参考資料

15
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?