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
Direkt codieren: Wählen Sie „bigint unsigned“ als...
Vorwort: Die Artikelserie „Erste Schritte mit MyS...
Inhaltsverzeichnis 1. Boolesche Werte 2. Ausdruck...
Inhaltsverzeichnis 1. Einfaches Seitenbeispiel 2....
Vorwort Tomcat ist ein hervorragender Java-Contai...
Ergebnisse erzielen Implementierungscode html <...
Export: docker save -o centos.tar centos:latest #...
Beachten! ! ! Diese Situation kann bei der Instal...
Sag es im Voraus Wir alle wissen, dass Docker ein...
Die Datenbank ermöglicht langsame Abfrageprotokol...
Beim Eingeben von Chinesisch in MySQL tritt der f...
Ersetzen Sie ihn durch den optimalen Datenbankver...
Diese Frage ist sehr seltsam, deshalb gehe ich di...
Erstellen Sie ein neues Projekt test1 auf Code Cl...
Inhaltsverzeichnis Vorwort Nr.1 Ein Fokus Nr. 2 E...