セッション数を制限するには?
Webセッションを追跡してWebアプリに制限する方法が必要です。「セッション」は、上記のWebアプリのページを閲覧する単一のユーザーとして大まかに定義されます。次のように翻訳できます。 セッションは、レイヤーまたは使用可能なデータに応じて、または<clientIP,vHost>としてタプルとして定義されます<clientIP,serverIP,serverPort><cookie,vHost> ユーザーが認証データを定義済みのログインURIに送信した後にセッションが開始します ユーザーが定義されたログアウトURIに到達した後にセッションが終了する クライアントが最後のオブジェクトを要求した後、指定されたタイムアウトの期限が切れると、セッションが終了します 指定されたセッション制限に達した後、次のユーザーはカスタムエラーページにリダイレクトされます。また、監視目的で現在のセッション数を追跡する方法と、監視サーバー(webappにクエリを定期的に発行している)をホワイトリストに登録して制限から除外する機能も必要です。 私が扱えるもの: Webアプリケーションに独自のファームが定義され、リバースプロキシモードで実行されているRadWare AppDirector Apache 2.2 SLES 11 SP2 他のオプションが残っていない場合は考慮しますが、追加のプロキシサーバーを使用しないことをお勧めします。 これらすべての背後にある理論的根拠は、前述のWebアプリが過負荷になりやすく、リクエストを不規則に拒否し始め、プロセスで(通常)フォームエントリデータを失う作業中のユーザーを怒らせます。過負荷状態になる可能性が低い制限を指定することにより、負荷が急上昇する可能性が高い場合にユーザーが後で戻るように指示される、明確に定義された障害状態を作成したいと考えています。 編集:Webアプリは3層の実装であり、最初の層(プレゼンテーション層、Apache vHostのCGIコードとして実装)はかなり単純化されており、アプリケーションサーバー間の基本的なエラー処理と要求負荷分散に限定されています。実行するWebサーバーに大きな負荷をかけることはありません。これが、AppDirectorファームで単なるフェールオーバーモード(負荷分散なし)で実行しているためです。 この時点以降はすべて基本的にブラックボックスです。データ層にはMSSQLデータベースがありますが、テーブル構造に関する意味のある情報をベンダーから入手することはほぼ不可能です。アプリケーションサーバーはクローズドソースであり、ベンダーは実装にかなり包括的なフレームワークを使用していますが、操作に関連するそれほど複雑でない質問には答えられないようです。