haproxy (1) バーチャルドメインのヘルスチェックテスト

こんにちは、後野です。

クララでhaproxyといえば吉村さんが詳しいのですが、あまり記事を載せてくれないので、最初に書かせていただきます。

 

テスト目的

バックエンドのサーバがapacheで複数のバーチャルホストで構成している場合に、

全体の負荷が高くなったとき、任意のヴァーチャルホストのみ早いタイミングでsorryを返したい。

 

環境

ha1-1

 

 

 

 

 

 

 

 

今回のテストでhaproxyが冗長化している必要は無いのでですが、作ってしまったので一応記載しておきます。
VIPは1つでclientが接続するFQDNで応答を変えることを試します。

haproxy設定

動作確認が目的なので、コンフィグは必要なものしか記載していません。
httpchkはtime.phpというファイルを指定しており、このファイルは2200~2300msほどsleepするようにしています。
ですので、上記configではweb01、web02 がそれぞれ正常に応答をする想定です。

テスト

正常系確認

timeout check 2500 にしているので、各ヴァーチャルドメインが正常に応答する事を確認します。

異常系確認

backend clara2 のみ timeout check 2000 へ変更しsorryが応答する事を確認します。

無事に想定通りの動作となりました。

今回のテストでの注意点のひとつは、ヘルスチェックはIPアドレスで接続に行くため、
defaultヴァーチャルホストのドキュメントルートにテスト用(ヘルスチェック用)ページを置く必要がありました。
backend毎に設定は変えられますが、ネームベースの場合はヘルスチェックは1つのヴァーチャルホストとなりそうです。

また今回は、option httpchk、timeout check にて確認を行いましたが、haproxyは豊富な設定パラメーターを
がある為、ステータスコードや文字列確認、tcp-check等でかなり柔軟なヘルスチェックが可能となっています。

haproxyはcentos7のbase repo のものを使用しました。
SSL対応の1.5である為、haproxyを利用する場合はcentosを利用する場合は 7 がいいですね。

 

今回はここまで。

Share on LinkedIn
LINEで送る
Pocket

claraer

claraer