私は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が確立するのをプロキシが待機していました。サーバーはたいてい接続の試みに気づいたことがあります。
あなたのHAProxyログを読んだことがありますか? –
私は質問を編集し、ログを保存しました。ログから、その接続がサーバーに渡されていないことがわかります。私がhaproxyから望むのは、バックエンドサーバーがないこと(彼はヘルスチェックが失敗しているので知っています)とTCP接続をまったく受け入れないことです。 –