13

この問題は解決されたと確信していますが、どこにも情報が見つかりません...

システム管理者は、既存の実行中のロードバランサーに新しいノードをプログラムで追加するにはどうすればよいですか?ロードバランサーを実行していて、2つのEC2インスタンス間でAPIサーバーのバランスをすでに取っているとしましょう。突然トラフィックが急増し、ロードバランサーに3つ目のノードが必要ですが、眠っています...おそらくRAM使用量と、別のノードが必要な時期を示すいくつかの主要なパフォーマンスインジケーターを監視するものがあり、ロードバランサーだけに新しいノードを追加できればさらに良いです...

これはnode-http-proxydistributeで可能であり、些細なことでもあると確信していますが、これがHAproxyやNginxで可能かどうかを知りたいです...Amazonの柔軟な負荷分散を知っていますおそらく私の最善の策ですが、自分でやりたいと思っています(ラックスペース、EC2、Joyentなどの便利なインスタンスからインスタンスを生成したいと思います)。

繰り返しになりますが、ノードの生成は簡単です。プロキシ全体をリロードせずに、haproxy.cfgまたはNginxに類似したものにノードを追加し、プログラムで追加する方法を知りたいです。Bashスクリプトはこれに対する私の最善の策ですが、それでもプロキシ全体をリロードする必要があります。これは接続が失われるため、悪いことです...

4

3 に答える 3

8

そこにいくつか質問があります。「再起動せずにノードをhaproxyに追加する」の場合:

同様の問題に対して私が行うことは、サーバー名を構成ファイルに事前入力することです。たとえば、一度に5つのWebサーバーしかない場合でも、web01、web02...web20などです。次に、hostsファイルで、それらをWebサーバーの実際のIPにマップします。

新しいサーバーを追加するには、hostsファイルにそのサーバーのエントリを作成するだけで、ヘルスチェックに合格して追加されます。

自動オーケストレーションの場合、それは実際には環境によって異なり、おそらくニーズに合ったカスタムを作成する必要があります。オーケストレーションを処理するための有料ソリューション(Scalrが思い浮かびます)もあります。

于 2012-03-04T22:17:55.453 に答える
8

私がしていること:haproxy.cfgのバックエンドセクションに次のような行があります。

# new webservers here

そして、sedスクリプトを使用して、haproxy.cfgを次のように更新します。

  sed -i -e "/new webservers here/a\    server $ip_address $ip_address:12080 check maxconn 28 weight 100"

次に、haproxyをリロードします。透過的に動作します。

于 2014-03-13T21:42:08.747 に答える
1

HAProxyには、それを動的に実行できるランタイムAPIがあります。

公式ドキュメントをお読みください: 動的構成HAProxyランタイムAPI

于 2018-05-03T08:23:10.250 に答える