2016-07-15 1 views
1

私はTCP(HTTPではなく)プロキシとしてhaproxy 1.6.4を使用しています。 クライアントがTCP要求を行っています。彼らは応答を待つことなく、データを送信して接続を閉じるだけです。バックエンドがダウンしているとき、haproxyバッファーtcpは本体を要求しますか?

すべてのバックエンドノードがダウンしているときのhaproxyの動作は? 私はクライアントの観点から見ると、haproxyが接続を受け入れていることが分かります。

統計情報ハプロキシ統計によると、フロントエンドのステータスがOPENで、接続を受け付けています。

フロントエンドではセッション数とバイト数が増加しますが、バックエンドでは増加しません(ダウンしています)。

ハプロキシは受信TCPリクエストをバッファリングしていて、バックエンドが一旦アップするとバックエンドに渡しますか? "はい"の場合、このバッファサイズを設定できますか?

すべてのバックエンドノードがダウンしていると、フロントエンド(受信TCP接続を受け入れないでください)をオフにすることは可能ですか?

編集: バックエンドが始まったとき、私は、インバイト、セッション *バックエンドは*セッション のフロントエンドの数に等しいが、私の唯一のバックエンドノードがバイト-での発熱の数を持っていることがわかり発熱があり、エラーがある。

したがって、デフォルト設定では、TCPバッファリングはありません。 バックエンドノードがすべてダウンしていても、このデータは失われても、データはhaproxyによって受け入れられます。 バックエンドサーバーがない場合、クライアント接続が拒否されるため、tcpフロントエンドをオフにすることをお勧めします。それは可能ですか?

編集: haproxyログ07月15 10時02分32秒

ある172.17.0.2 haproxy [1]:185.130.180.3:11319 [/ 7月/ 2016年15:10:02:32.335] TCP-でアプリ/ -1/-1/0 0 SC 0/0/0/0/0 0/0 908

\私のログ形式は

%のCIである:%cpは\%%\ c%%\ c%%\ c%%\ c%%\ c \% /%BQ \%U

私はログから理解して何を:

  • 何backeendサーバが
  • 停止状態SCが

    Sに変換されますがありません:TCPセッションが予期せず中断されましたサーバが サーバが明示的に拒否した場合 C: サーバーにCONNECTIONが確立するのをプロキシが待機していました。サーバーはたいてい接続の試みに気づいたことがあります。

+0

あなたのHAProxyログを読んだことがありますか? –

+0

私は質問を編集し、ログを保存しました。ログから、その接続がサーバーに渡されていないことがわかります。私がhaproxyから望むのは、バックエンドサーバーがないこと(彼はヘルスチェックが失敗しているので知っています)とTCP接続をまったく受け入れないことです。 –

答えて

1

私はあなたが探しているとは思わないと思います。 HAproxyは、接続の両側(フロントエンド、バックエンド)を別々に処理します。着信TCP接続が最初に確立され、次にHAproxyがそれに一致する宛先を探します。

関連する問題