Anwendungsfall: Begrenzung der Anzahl von Sitzungen
在diesem Anwendungsfall最好死Anforderung darin,死Anzahl der aktiven后端sitzungen zu begrenzen。在der Bereitstellung hat jede Sitzungsanmeldung eine Anmeldung In der URL和jede Sitzungsabmeldung hat eine Abmeldung In der URL。Bei erfolgreicher Anmeldung setzt das Backend ein Sessionid-Cookie mit einem eindeutigen 10-Zeichen-Wert。
Führen我们的祖国,我们的祖国,我们的祖国:
Erstellen Sie eine Map-Variable, die jede aktive Sitzung speichern kann。Der Schlüssel Der Map ist die Sessionid。Die Ablaufzeit für Die变量ist auf 600 Sekunden(10分钟)festgelegt.
>添加ns变量session_map -type map(text(10),ulong,100) -expires 600
Erstellen Sie die folgenden Zuweisungen für die Map-Variable:
Erstellen Sie einen Eintrag für die Sessionid und setzen Sie diesen Wert auf 1 (dieser Wert wwd nicht wirklich verwendet).
> add ns assign add_session -variable '$session_map[http.req.cookie.value("sessionid")]' -set 1
Gibt den Eintrag für eine sitzggs - id frei, wodurch die Wertanzahl für session_map implizit verringert wonder . . gbt den Eintrag für eine sitzggs - id frei, wodurch die Wertanzahl
> add ns assign delete_session -variable '$session_map[http.req.cookie.value("sessionid")]' -clear
Erstellen Sie Responder-Richtlinien für Folgendes:
Um zu überprüfen, ob ein Zuordnungseintrag für diese Sessionid in der HTTP-Anforderung exists。Die Add_Session-Zuweisung wild ausgeführt, wenn der Zuordnungseintrag nicht exist .
>添加响应器策略add_session_pol 'http.req.url.contains("example") || $session_map.valueExists(http.req.cookie.value("abc"))' add_session
Hinweis: Die Funktion valueExists () in der Richtlinie add_session_pol zählt als Referenz auf den Zuordnungseintrag der Sitzung, sodjede Anforderung das Ablauf-Timeout für ihre Sitzung zurücksetzt。Wenn nach 10分钟keine Anfragen für eine Sitzung eingehen,奇怪的Eintrag der Sitzung freigegeben。
嗯祖überprüfen, wann die Sitzung abgemeldet ist。死delete_session Zuweisung将ausgefuhrt。< / span >
add responder policy delete_session_pol "http.req.url.contains("Logout")" delete_session
Um zu überprüfen, ob Anmeldeanfragen vorliegen und ob die Anzahl der aktiven Sitzungen 100 überschreitet。Wenn diese Bedingungen erfüllt sind,奇怪的der Benutzer zur Begrenzung der Anzahl der Sitzungen auf eine Seite umgeleitet, die anzeigt, dass der Server ausgelastet ist.
添加响应器动作redirect_too_busy重定向"/too_busy.html"添加响应器策略check_login_pol "http.req.url.contains("example") && $session_map。valueCount > 100" redirect_too_busy
bden Sie die Responder-Richtlinien global.
绑定响应器全局add_session_pol 30 next绑定响应器全局delete_session_pol 10绑定响应器全局check_login_pol 20