1. Hintergrund Bei unserer täglichen Website-Wartung stoßen wir häufig auf eine solche Anforderung. Um die Anfragen bestimmter Crawler oder böswilliger Benutzer an den Server zu blockieren, müssen wir eine dynamische IP-Blacklist erstellen. Für IPs auf der schwarzen Liste wird der Dienst verweigert. Dieser Artikel beschreibt, wie Nginx Lua+Redis verwendet, um IP-Adressen dynamisch zu blockieren. Werfen wir einen Blick auf die ausführliche Einführung. 2. Architektur Es gibt viele Möglichkeiten, die IP-Blacklist-Funktionalität zu implementieren: 1. Konfigurieren Sie iptables auf Betriebssystemebene so, dass Netzwerkanforderungen von der angegebenen IP-Adresse abgelehnt werden. 2. Konfigurieren Sie auf Webserverebene die IP-Blacklist über die Verweigerungsoption von Nginx oder das Lua-Plug-In. 3. Überprüfen Sie auf Anwendungsebene, ob die Client-IP auf der Blacklist steht, bevor Sie den Dienst anfordern. Um die Verwaltung und Freigabe zu erleichtern, implementieren wir die IP-Blacklist-Funktion über die Nginx+Lua+Redis-Architektur. Das Architekturdiagramm sieht wie folgt aus: Architekturdiagramm 3. Umsetzung 1. Installieren Sie das Nginx+Lua-Modul. Es wird empfohlen, OpenResty zu verwenden, einen Nginx-Server, der verschiedene Lua-Module integriert:
2. Installieren und starten Sie den Redis-Server; 3. Nginx-Beispiel konfigurieren:
In
Der Nginx-Prozess reserviert einen 1 MB großen gemeinsam genutzten Speicherplatz zum Zwischenspeichern der IP-Blacklist, siehe: https://github.com/openresty/lua-nginx-module#lua_shared_dict
Geben Sie den Speicherort des Lua-Skripts an 4. Konfigurieren Sie das Lua-Skript so, dass es regelmäßig die neueste IP-Blacklist von Redis abruft. Den Dateiinhalt finden Sie unter: https://gist.github.com/Ceelog/39862d297d9c85e743b3b5111b7d44cb
5. Erstellen Sie eine neue IP-Blacklist vom Typ „Set“ auf dem Redis-Server und fügen Sie die neueste IP-Blacklist hinzu. Nachdem Sie die obigen Schritte abgeschlossen haben, laden Sie nginx neu und die Konfiguration wird wirksam. Wenn Ihre IP-Adresse auf der Blacklist steht, wird Ihnen der Zugriff auf den Server verweigert:
IV. Fazit Das Obige ist die von Nginx+Lua+Redis implementierte IP-Blacklist-Funktion, die folgende Vorteile bietet: 1. Einfache und leichte Konfiguration mit fast keinen Auswirkungen auf die Serverleistung; 2. Mehrere Server können über Redis-Instanzen Blacklists gemeinsam nutzen. 3. Dynamische Konfiguration: Sie können die Blacklist in Redis manuell oder automatisiert festlegen. Nun, das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: JavaScript Canvas implementiert Grafiken und Text mit Schatten
>>: MySQL-Protokolleinstellungen und Anzeigemethoden
<br />Um zu beweisen, dass sein Engagement f...
In diesem Artikelbeispiel wird der spezifische HT...
MyISAM-Speicher-Engine MyISAM basiert auf der ISA...
Situationsbeschreibung: Die Datenbank wurde abnor...
Egal ob Sie Webdesigner oder UI-Designer sind, di...
Inhaltsverzeichnis 1. Stoppen Sie zuerst den MySQ...
Inhaltsverzeichnis Vorwort 1. Null-Koaleszenzoper...
I. Erläuterung des strikten Modus Gemäß den Einsc...
Front-End-Technologieschicht (Das Bild ist etwas e...
Inhaltsverzeichnis Umgebungsbeschreibung Docker-I...
Streng geprüfte Attribute Das offizielle Dokument...
Inhaltsverzeichnis 1. Zeichne einen Kreis 2. Krei...
Inhaltsverzeichnis Stabilisierung Einführung Anti...
01. Befehlsübersicht Der Befehl „locate“ ist eige...
MySql-Batch-Insert-Optimierung. Beispiel für SQL-...