web-dev-qa-db-ja.com

異なるインターフェース上のHaproxyバックエンドサーバー

私は約60kの接続に制限されるhaproxyサーバーを持っています。 1:1の接続マッピングがあるため、一時的なポート制限が原因だと思います。そのため、すべての発信接続は同じサーバーに送信されます。

これが私に役立つと思うことです:新しいIPで新しいネットワークインターフェース(eth1)を追加できます。次に、重複するバックエンドサーバー定義を追加します。新しい宛先は、別のインターフェイスを使用している限り、新しいエフェメラルポート制限を取得すると思います。これにより、接続数が増えるはずです。

ただし、haproxyが1つのバックエンドサーバー定義にeth0を使用し、別の定義にeth1を使用するように強制する方法が見つからないようです。それを行うことは可能ですか、それとも私が必要なことを達成する他の方法はありますか?

問題のシステムはDebianとhaproxy1.4.8(Debianのデフォルト)を実行しています。

1
Rytis

HAProxyマニュアルのセクション5から:

「source」パラメータは、サーバーに接続するときに使用される送信元アドレスを設定します。これは、それを参照するサーバーにのみ適用されることを除いて、バックエンドの「source」キーワードとまったく同じパラメーターと原則に従います。詳細については、「source」キーワードを参照してください。

3

フローリンの答えは素晴らしいです。

これに失敗した場合(たとえば、これがHAproxyでない場合)、回避策は、セカンダリデバイスの別のサブネットにアドレスを構成することでした。

もちろん、バックエンドサーバーはそのサブネットでも到達可能である必要があります。新しいserver宣言は重複ではなく、偶然に同じマシンに到達する独立したエントリになります。

0
Felix Frank