LoginSignup
0
0

More than 5 years have passed since last update.

Apacheの<proxy balancer>指定の確認

Last updated at Posted at 2016-11-05

概要

loadbalancer の指定を行うに当たって、conf の定義について、あまり理解できていなかった部分があったので、シンプルな環境で確認を行った。きっかけは、<proxy balancer://~~>ディレクティブに、/ が使えない事象が発生して、ちょっと腑に落ちない状況だったので。
例:<proxy balancer://cluster/dir/service>

環境

  • macOS sierra(Host)
  • Docker
    • apache 2つ
    • loadbalancer 1つ

1. Apache 環境準備

DockerHub からImageを拝借

docker pull eboraas/apache

ファイル編集用に、vimインストール

apt-get update
apt-get install vim

確認用のHTMLを用意

デフォルトで/var/www/htmlがホームディレクトリとなってたので、そこはそのまま使用。

/var/www/html/index.html
<html>
<body>
It's work!! [apache#one]
</body>
</html>

フォルダー配下の表示確認を行うため、適当なフォルダを作成しHTMLファイルを設置。

/var/www/html/dir_a/dir_b/index.html
<html>
<body>
[apache#one] /dir_a/dir_b/index.html
</body>
</html>

※同じようにして、apache2つ目も環境を構築。

2. loadbalancer 環境準備

DockerHub からImageを拝借

docker pull corba/load-balancer

loadbalancer 側からHTML表示確認

# curl http://172.17.0.22/
<html>
<body>
It's work!! [apache#one]
</body>
</html>

# curl http://172.17.0.22/dir_a/dir_b/
<html>
<body>
[apache#one] /dir_a/dir_b/index.html
</body>
</html>

# curl http://172.17.0.23/
<html>
<body>
It's work!! [apache#two]
</body>
</html>

# curl http://172.17.0.23/dir_a/dir_b/
<html>
<body>
[apache#two] /dir_a/dir_b/index.html
</body>
</html>

balancer configテスト #1

/etc/apache2/mods-availabled/proxy_balancer.conf
ProxyPass /balancer-manager !
ProxyPass / balancer://cluster/ lbmethod=bybusyness
<Proxy balancer://cluster/>
  # Balancer members
  BalancerMember http://172.17.0.22:80 route=1
  BalancerMember http://172.17.0.23:80 route=1
</Proxy>
<Location /balancer-manager>
  SetHandler balancer-manager
</Location>

更新ボタン押下で切り替わりを確認

スクリーンショット 2016-11-06 2.41.08.png

スクリーンショット 2016-11-06 2.40.19.png

balancer config テスト #2

/etc/apache2/mods-availabled/proxy_balancer.conf
ProxyPass /balancer-manager !
ProxyPass / balancer://cluster/dir_a/dir_b/ lbmethod=bybusyness
<Proxy balancer://cluster/dir_a/dir_b/>
  # Balancer members
  BalancerMember http://172.17.0.22:80 route=1
  BalancerMember http://172.17.0.23:80 route=1
</Proxy>
<Location /balancer-manager>
  SetHandler balancer-manager
</Location>

こっちも問題なく切り替わる事確認

スクリーンショット 2016-11-06 2.49.33.png

スクリーンショット 2016-11-06 2.49.57.png

結果、"/" がディレクティブに使えないわけではなさそうだけど...

<proxy balancer://~~>に、パスの指定で”/”を定義する形になっても、動作する事は確認できた。ただ、本来の問題の原因がわかっていないので、引き続き調査必要です...

参考

0
0
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
0
0