Aus geschäftlichen Gründen kommt es häufig zu Eilkäufen, daher ist es notwendig, die Fehlerhäufigkeit am Frontend des Lastausgleichs zu begrenzen. Dieser Artikel gilt auch für die Vorbeugung von CC. limit_req_zone $server_name zone=sname:10m rate=1r/s; #Beschränken Sie den Server auf nur einen erfolgreichen Zugriff pro Sekunde #limit_req_zone $binary_remote_addr zone=one:3m rate=1r/s; #Beschränken Sie IP, nur ein Zugriff pro Sekunde #limit_req_zone $binary_remote_addr $uri zone=two:3m rate=1r/s; #Beschränken Sie IP und Pfad ohne Parameter, #limit_req_zone $binary_remote_addr $request_uri zone=thre:3m rate=1r/s; #IP und Pfad mit den Parametern server { begrenzen hören Sie 80; Servername www.abc.com; Standort / { host/proxy.cnf einschließen; Proxy-Passwort http://backend; } Standort /api/createOrder { limit_req zone=sname; #Kein Burst, nur eine normale Anfrage limit_req_status 503; #Setze den zurückgegebenen Statuscode auf 503 #limit_req zone=sname burst=5 nodelay; #Die maximale Parallelität beträgt 5 und die Echtzeitverarbeitung umfasst host/proxy.cnf; Proxy-Passwort http://backend; error_page 503 =200 /50x.html; #Das ist sehr wichtig. Sie können den Fehlerstatuscode auf 503 setzen und das Ergebnis als 200 zurückgeben } Standort = /50x.html { if ($http_user_agent ~* "mobile|android|iPhone|iphone|ios|iOS"){ #Standardtyp Anwendung/json; return 200 '{"msg": "Die Veranstaltung ist zu beliebt, bitte versuchen Sie es später noch einmal!","data": {},"code": -1}'; #Stellen Sie das mobile Endgerät so ein, dass eine Fehlermeldung angezeigt wird} root html; #Wenn es ein PC ist, gib eine HTML-Seite zurück} } Wichtiger Punkt: Unter normalen Umständen lautet der zurückgegebene Statuscode 503, wenn das aktuelle Limit festgelegt ist. Selbst wenn Sie für das mobile Endgerät JSON-Daten zurückgeben, erkennt der Client diese nicht. Zu diesem Zeitpunkt können Sie den Statuscode geschickt über error_page 403 =200 /50x.html auf 200 setzen. Oben wird nur das Modul ngx_limit_req_module verwendet. Das Modul ngx_limit_conn_module kann ebenfalls verwendet werden. Referenz: https://gist.github.com/simlegate/75b18359316cc33d8e20 Insbesondere wenn einige Beratungswebsites das Ziel von Crawlern sind, kann der Server von den Crawlern zerstört werden (dies ist bei kleinen Websites der Fall). #Globale Konfiguration limit_req_zone $spider zone=spider:60m rate=200r/m; #Beschränken Sie den Crawler auf 200 Ausführungen pro Minute #In einem Server limit_req zone=spider burst=5 nodelay; if ($http_user_agent ~* "spider|bot") { set $spider $http_user_agent; #Variablen festlegen und die Geschwindigkeit begrenzen, wenn Sie hier eintreten} Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Wie implementiert Vue die Kommunikation zwischen Komponenten?
>>: Ursachenanalyse und Lösung des E/A-Fehlers beim Löschen einer MySQL-Tabelle
Inhaltsverzeichnis 1. Übersicht 2. Attribute 1. M...
Inhaltsverzeichnis 1. Virtueller Host 1.1 Virtuel...
BFC BFC: Blockformatierungskontext BFC-Layoutrege...
Inhaltsverzeichnis Integritätsbeschränkungen Defi...
In diesem Artikel werden die Installationsschritt...
Kontextdefinition und Zweck Der Kontext bietet ei...
<br />Ich habe festgestellt, dass viele Leut...
Dieser Artikel beschreibt, wie Sie Apache auf ein...
Dieser Artikel zeigt ein kleines Beispiel für das...
Verwenden Sie Javascript, um ein Message Board-Be...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Die Javascript-Funktion zum Konvertieren von <t...
Um Kernelmodule in CentOS automatisch zu laden, k...
Einführung in Git Git ist eine Open-Source-Versio...
Inhaltsverzeichnis 1. Initialisierungsstruktur 2....