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
Sie werden oft HTML mit Datenattributen sehen. Die...
Im vorherigen Artikel wurde der Installationsproz...
Die erste Zeile eines Docker-Images beginnt mit e...
Warum habe ich das verwendet? Alles begann mit de...
Das Grundprinzip aller Animationen besteht darin,...
Inhaltsverzeichnis 1. HttpGET 2. HTTP POST WebSoc...
Informationen zur Bedienung finden Sie hier in de...
1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...
Inhaltsverzeichnis Tabelle/index.js Tabelle/Model...
Inhaltsverzeichnis 1. Plugins 2. Zwischenspiel 3....
Ziel dieses Artikels ist es, die Beziehung zwisch...
Das Thema Big Data wird immer wichtiger und wer m...
1. Einleitung Da Bilder viel Platz beanspruchen u...
In diesem Artikel wird der spezifische Code von j...
Nach der Installation der neuesten Version 8.0.11...