HAProxy 1.4.18を次のバックエンド構成で使用しています
backend staging
option httpchk HEAD /check.txt HTTP/1.0
http-check disable-on-404
default-server error-limit 1 on-error mark-down
server staging01 x.x.x.x:80 check observe layer7
server staging02 x.x.x.x:80 check observe layer7
サーバーは、apache / passenger上で複数のアプリケーションを実行しています。
httpchkとdisable-on-404の組み合わせにより、正常にシャットダウンし、直接(つまり、テストのために)アクセスできる状態のまま、サーバーをlbから簡単に削除できます。
アプリケーションが動作していないときにサーバーを無効にするために監視を設定しようとしています。staging02のアプリケーション構成を壊したので、常に500を返します。最初の500の後で正しくDOWNとマークされていますが、次のhttpchkでUPとマークされています。
ログファイルは次のとおりです。
Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active and 1 backup servers left. 2 sessions active, 0 requeued, 0 remaining in queue.
Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active and 1 backup servers left. 1 sessions active, 0 requeued, 0 remaining in queue.
Server staging/staging02 is UP, reason: Layer7 check passed, code: 200, info: "OK", check duration: 0ms. 2 active and 1 backup servers online. 0 sessions requeued, 0 total in queue.
これら2つのチェックを組み合わせる方法はありますか?
HAProxyが間違いなく問題であることを確認するために、バックエンドのApacheサーバーから一致する3つのログ行を見つけて、質問に追加できますか?
—
Ladadadada
Apacheサーバーの1つが意図的に誤って設定されているため、サーバー上のすべてのアプリケーションが500エラーコードを返します。ただし、ファイルを削除しない限り、/ check.txtは常に機能します。check.txtファイルがまだ存在していても、500エラーが返される場合は、Apacheサーバーを無効にしてください。
—
Ouranos