haproxy:アプリセッションを開始せずにサーバーのメンテナンスを準備する方法
問題 haproxyを使用してWebサーバーの負荷を分散しています。一部のアプリケーションはセッションファイルを使用しますが、これらはサーバー間で同期されないため、セッションパーシステンスと追加のCookieを使用します。 セッションを中断することなく、メンテナンスのためにサーバーを無効にします。したがって、既存のクライアントがアプリケーションセッションを継続できるようにしたいのですが、新しいクライアントは受け入れません。 haproxyの動作 サーバーを「メンテナンス中」に設定しました クライアントにCookieが設定されている場合は、「メンテナンス中」とマークされていてもサーバーを使用します 新しいクライアント(Cookieなし)が来ると、別のサーバーに転送されます すべてのクライアントがアプリケーションセッションを終了した後、この特定のサーバーに設定されたCookieを持つクライアントはなくなり、ユーザーを中断することなくシャットダウンできます。 これはいくつかのhaproxy構成で達成できると思いますか?それともそれを行う賢い方法はありますか? 他の方法 このニーズを達成する他の方法の非網羅的なリスト: サーバー間でセッションファイルを同期する(複数のサーバー間でファイルを同期する方法、または共通の単一マウントポイントが必要) データベースを使用してセッション情報を保存する(アプリケーションの動作を変更する必要がある) 詳細 この種の構成を使用します。 frontend https-in bind xxx.xxx.xxx.xxx:443 ssl crt /etc/haproxy/ssl/_default.pem crt /etc/haproxy/ssl reqadd X-Forwarded-Proto:\ https acl APP1 hdr(host) -i APP1.atac.local use_backend APP1 if APP1 default_backend _default backend APP1 redirect scheme https if !{ ssl_fc } mode http balance …