So begrenzen Sie den Bandbreitenverbrauch pro Benutzer oder Client-Gerät
Ihre Website, Anwendung oder Datei-Hosting-Dienst verfügt über endliche Netzwerk- und Server-Ressourcen, um alle ihre Benutzer zu bedienen. Eine der wichtigsten Ressourcen ist die Bandbreite. Ein erheblicher Bandbreitenverbrauch durch nur eine Teilmenge der Benutzerbasis kann zu einer Netzwerküberlastung und einer geringeren Ressourcenverfügbarkeit für andere Benutzer führen. Um Netzwerküberlastung zu verhindern, müssen Sie möglicherweise den Bandbreitenverbrauch eines Clients einschränken, indem Sie temporäre Dienstverweigerungsmethoden verwenden, z. B. die Reaktion auf eine Clientanforderung mit einer HTML-Seite, wenn dieser einen vorkonfigurierten Bandbreitenwert über einen bestimmten Zeitraum vor der Anforderung überschritten hat.
Im Allgemeinen您能窝Bandbreitenverbrauchentweder pro Clientgerät oder pro Benutzer regulieren. Dieser Anwendungsfall zeigt, wie Sie den Bandbreitenverbrauch pro Client über einen Zeitraum von einer Stunde auf 100 MB begrenzen können. Der Anwendungsfall zeigt auch, wie Sie den Bandbreitenverbrauch pro Benutzer über einen Zeitraum von einer Stunde auf 100 MB regeln können, indem Sie einen benutzerdefinierten Header verwenden, der den Benutzernamen bereitstellt. In beiden Fällen wird die Verfolgung des Bandbreitenverbrauchs über einen bewegten Zeitraum von einer Stunde erreicht, indem der Intervallparameter in der Stream-ID auf 60 Minuten gesetzt wird. Die Anwendungsfälle zeigen auch, wie Sie eine HTML-Seite importieren können, die an einen Client gesendet werden soll, der den Grenzwert überschritten hat. Das Importieren einer HTML-Seite vereinfacht nicht nur die Konfiguration der Responder-Aktion in diesen Anwendungsfällen, sondern vereinfacht auch die Konfiguration aller Responder-Aktionen, die dieselbe Antwort benötigen.
So beschränken Sie den Bandbreitenverbrauch pro Benutzer oder Clientgerät mit der Befehlszeilenschnittstelle
Führen Sie in der Befehlszeilenschnittstelle die folgenden Aufgaben aus, um Aktionsanalysen für die Begrenzung des Bandbreitenverbrauchs eines Clients oder Benutzers zu konfigurieren. Jeder Schritt enthält Beispielbefehle und deren Ausgabe.
Richten Sie Ihre Lastausgleichskonfiguration ein.Konfigurieren Sie den Lastenausgleich virtuellen Server mysitevip, und konfigurieren Sie dann alle Dienste, die Sie benötigen. Binden Sie die Dienste an den virtuellen Server. Im folgenden Beispiel werden zehn Dienste erstellt und die Dienste an mysitevip gebunden.
>添加磅vserver mysitevip HTTP 192.0.2.17 80完成> add service service[1-10] 192.0.2.[240-249] HTTP 80 service "service1" added service "service2" added service "service3" added . . . service "service10" added Done > bind lb vserver vserver1 service[1-10] service "service1" bound service "service2" bound service "service3" bound . . . service "service10" bound Done
Konfigurieren Sie den Stream-Selektor.Konfigurieren Sie einen der folgenden Stream-Selektoren:
Um den Bandbreitenverbrauch pro Client zu begrenzen, konfigurieren Sie einen Stream-Selektor, der die Client-IP-Adresse identifiziert.
> add stream selector myselector CLIENT.IP.SRC Done
Um den Bandbreitenverbrauch pro Benutzer auf der Grundlage des Wertes eines Anforderungs-Headers, der den Benutzernamen bereitstellt, zu begrenzen, konfigurieren Sie einen Stream-Selektor, der den Header identifiziert. Im folgenden Beispiel lautet der Name der Kopfzeile UserHeader.
> add stream selector myselector HTTP.REQ.HEADER(“UserHeader”) Done
Konfigurieren Sie einen Stream-Bezeichner.Konfigurieren您杯Stream-Bezeichner der窝Stream-Selektor verwendet. Stellen Sie den Intervallparameter auf 60 Minuten ein.
> add stream identifier myidentifier myselector -interval 60 -sampleCount 1 -sort BANDWIDTH Done
Konfigurieren Sie die Responderaktion.Importieren Sie die HTML-Seite, die Sie an Benutzer oder Clients senden möchten, die das Bandbreitenverbrauchslimit überschritten haben, und verwenden Sie dann die Seite in Responderaktion crossed_limits.
> import responder htmlpage http://.1.1.1/stdpages/wait.html crossed-limits.html This operation may take some time, Please wait... Done > add responder action crossed_limits respondwithhtmlpage crossed-limits.html Done
Konfigurieren Sie die Responder-Richtlinien.Konfigurieren Sie die Responderrichtlinie myrespol1 mit der Regel ANALYTICS.STREAM (myidentifier) .COLLECT_STATS und der Aktion NOOP. Konfigurieren Sie dann die Richtlinie myrespol2, um zu bestimmen, ob ein Client oder Benutzer die Grenze von 100 MB überschritten hat. Die Richtlinie myrespol2 ist mit der Responderaktion crossed_limits konfiguriert.
> add responder policy myrespol1 'ANALYTICS.STREAM("myidentifier").COLLECT_STATS' NOOP Done > add responder policy myrespol2 'ANALYTICS.STREAM("myidentifier").BANDWIDTH.GT(104857600)' crossed_limits Done
Binden Sie die Responderrichtlinien an den virtuellen Lastausgleichsserver.Die Richtlinie myrespol1, die nur statistische Daten sammelt, muss die höhere Priorität und einen GOTO-Ausdruck von NEXT haben.
> bind lb vserver mysitevip -policyName myrespol1 -priority 1 -gotoPriorityExpression NEXT Done > bind lb vserver mysitevip -policyName myrespol2 -priority 2 -gotoPriorityExpression END Done
Testen Sie die Konfiguration.Testen Sie die Konfiguration, indem Sie HTTP-Testanforderungen von mehreren Clients oder Benutzern an den virtuellen Lastausgleichsserver senden und mithilfe des Befehls stat stream identifier die Statistiken anzeigen, die für den angegebenen Bezeichner gesammelt werden. Die folgende Ausgabe zeigt Statistiken für Clients an.
> stat stream identifier myidentifier -sortBy BandW –fullValues Stream Session statistics Req BandW 192.0.2.30 5000 3761 192.0.2.31 29 2602 192.0.2.32 25 51 RspTime Conn 192.0.2.30 2 0 192.0.2.31 0 0 192.0.2.32 0 0 Done >