ADC
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

ユースケース:セッション数の制限

このユースケースでは、要件はアクティブなバックエンドセッションの数を制限することです。展開では、各セッションログインの URL にはログインがあり、各セッションログアウトには URL にログアウトがあります。ログインが成功すると、バックエンドは一意の 10 文字の値を持つ sessionid Cookie を設定します。

このユースケースを実現するには、次の操作を実行します。

  1. アクティブな各セッションを格納できるマップ変数を作成します。マップのキーはセッション ID です。変数の有効期限は 600 秒 (10 分) に設定されています。</span>

    > add ns variable session_map -type map(text(10),ulong,100) -expires 600
  2. map 変数に次の代入を作成します。</span>

    • sessionid のエントリを作成し、その値を 1 に設定します (この値は実際には使用されません)。</span>

      > add ns assignment add_session -variable '$session_map[http.req.cookie.value("sessionid")]' -set 1
    • セッション ID のエントリを解放します。これにより、session_map の値カウントが暗黙的に減少します。</span>

      > add ns assignment delete_session -variable '$session_map[http.req.cookie.value("sessionid")]' -clear
  3. 次のレスポンダーポリシーを作成します。</span>

    • HTTP リクエストにそのセッション ID のマップエントリが存在するかどうかを確認する。add_session 割り当ては、マップエントリが存在しない場合に実行されます。</span>

      > add responder policy add_session_pol 'http.req.url.contains("example") || $session_map.valueExists(http.req.cookie.value("abc"))' add_session

      注: add_session_pol ポリシーの valueExists () 関数は、セッションのマップエントリへの参照としてカウントされるため、各リクエストはそのセッションの有効期限タイムアウトをリセットします。10 分経過してもセッションの要求が受信されない場合、セッションのエントリの割り当ては解除されます。

    • セッションがいつログアウトしたかを確認する。delete_session 割り当てが実行されます。</span>

      add responder policy delete_session_pol "http.req.url.contains("Logout")" delete_session
    • ログイン要求があるかどうか、およびアクティブなセッションの数が100を超えているかどうかを確認する。これらの条件が満たされると、セッション数を制限するために、ユーザーはサーバーがビジーであることを示すページにリダイレクトされます。</span>

      add responder action redirect_too_busy redirect "/too_busy.html" add responder policy check_login_pol "http.req.url.contains("example") && $session_map.valueCount > 100" redirect_too_busy
  4. レスポンダーポリシーをグローバルにバインドします。</span>

    bind responder global add_session_pol 30 next bind responder global delete_session_pol 10 bind responder global check_login_pol 20
このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
ユースケース:セッション数の制限