私のアプリケーションで2組のルールを維持するために2つのバックエンドがあります。 1つはブラウザ経由でアクセスするメインWebサイト(cookieセッション)用、もう1つはAPI用(ステートレスでAPIキーで認証済み)です。複数のバックエンド間でヘルスチェックを共有するにはどうすればよいですか?
設定は次のようになります(大幅に簡略化)。
defaults
option httpchk HEAD /ping
backend web
cookie _srv insert indirect
server srv1 10.0.0.1:80 cookie srv1 check inter 10s
server srv2 10.0.0.2:80 cookie srv2 check inter 10s
backend api
stick-table type string len 50 expire 1d store http_req_cnt
stick on url_param(key)
server srv1 10.0.0.1:80 check inter 10s
server srv2 10.0.0.2:80 check inter 10s
図に示すように、両方のバックエンドは同じサーバーを使用しますが、APIでCookieを設定する必要はありません。レートリミットルールなど、ロジックを分離することがはるかに多い(またはそうなるだろう)。
私の質問は、どのようにヘルスチェックの複製を避けることができますか?各サーバーに同じエンドポイントを2回pingするのはリソースの無駄です。私はweb
バックエンドにヘルスチェックを行い、それに沿ってapi
バックエンドとしてマークを付けたいと思います。これは可能ですか?あるいは、バックエンドを分離するより良い方法がありますが、共通の機能を維持しているかもしれません。
ありがとうございました。私は1.7です。まさに私が探していたものだが、ドキュメントは非常に巨大で、私はそれを掘り出す方法を知らなかった。それが起こると、私はこれを避けるために私の設定をrejigged、しかし知っていることは素晴らしいです。 – Tim