Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie Nginx die Zugriffskontrollkonfiguration basierend auf der IP der Anforderungsquelle implementiert

Wie Nginx die Zugriffskontrollkonfiguration basierend auf der IP der Anforderungsquelle implementiert

WBOY
WBOYOriginal
2023-11-08 10:09:21851Durchsuche

Wie Nginx die Zugriffskontrollkonfiguration basierend auf der IP der Anforderungsquelle implementiert

Wie Nginx die Zugriffskontrollkonfiguration basierend auf der IP der Anforderungsquelle implementiert, erfordert spezifische Codebeispiele

Bei der Entwicklung von Netzwerkanwendungen ist der Schutz des Servers vor böswilligen Angriffen ein sehr wichtiger Schritt. Wenn wir Nginx als Reverse-Proxy-Server verwenden, können wir die IP-Zugriffskontrolle konfigurieren, um den Zugriff auf bestimmte IP-Adressen einzuschränken und so die Serversicherheit zu verbessern. In diesem Artikel wird erläutert, wie die Zugriffskontrollkonfiguration basierend auf der Anforderungsquellen-IP in Nginx implementiert wird, und es werden spezifische Codebeispiele bereitgestellt.

Zuerst müssen wir die Nginx-Konfigurationsdatei bearbeiten. Normalerweise befindet sich diese Datei unter /etc/nginx/nginx.conf. In dieser Datei finden wir einen Block namens „http“, der die globale Nginx-Konfiguration enthält. Wir müssen dem Block den folgenden Code hinzufügen:

http {
    # 定义一个名为“block_ip”的map,用于存储需要屏蔽的IP地址
    map $remote_addr $block_ip {
        default 0;  # 默认情况下,不屏蔽任何IP地址
        192.168.0.100 1;  # 需要屏蔽的IP地址,值设为1
        192.168.0.101 1;  # 需要屏蔽的IP地址,值设为1
    }
    
    # 定义一个名为“block_ips”的变量,通过内部重定向的方式使用“block_ip”进行判断
    set $block_ips "";
    if ($block_ip = 1) {
        set $block_ips "block";
    }
    
    # 在server块中添加访问控制配置,只允许没有被屏蔽的IP地址访问
    server {
        listen 80;
        server_name example.com;
        
        # 添加对block_ips变量值的判断
        if ($block_ips = "block") {
            return 403;
        }
    }
}

Im obigen Code definieren wir zunächst eine Karte mit dem Namen „block_ip“, um die IP-Adressen zu speichern, die blockiert werden müssen. Standardmäßig ist es auf 0 eingestellt, was bedeutet, dass keine IP-Adressen blockiert werden. Bei Bedarf können wir eine bestimmte IP-Adresse auf 1 setzen, um anzuzeigen, dass die IP-Adresse blockiert werden muss.

Als nächstes definieren wir eine Variable mit dem Namen „block_ips“ und verwenden „block_ip“ zur Beurteilung durch interne Umleitung. Zuerst setzen wir die Variable auf leer. Verwenden Sie dann die if-Anweisung, um zu bestimmen, ob der Wert von „block_ip“ gleich 1 ist. Wenn ja, setzen Sie „block_ips“ auf „block“.

Abschließend wird die Zugriffskontrollkonfiguration im Serverblock hinzugefügt. Wir verwenden die Listen-Direktive, um die Nummer des Überwachungsports anzugeben, und die Server_Name-Direktive, um den Domänennamen oder die IP-Adresse anzugeben. In der if-Anweisung ermitteln wir, ob der Wert von „block_ips“ gleich „block“ ist. Wenn ja, geben Sie eine 403 Forbidden-Antwort zurück.

Der obige Code ist nur ein Beispiel und dient nur dazu, zu demonstrieren, wie die Zugriffskontrollkonfiguration basierend auf der Anforderungsquellen-IP in Nginx implementiert wird. Bitte nehmen Sie entsprechend den tatsächlichen Anforderungen entsprechende Konfigurationen vor, z. B. das Hinzufügen von IP-Adressen, die blockiert werden müssen, das Ändern der Überwachungsportnummer und des Domänennamens usw.

Zusammenfassend lässt sich sagen, dass Nginx mithilfe von Karten und Variablen problemlos eine Zugriffskontrolle basierend auf der IP der Anforderungsquelle implementieren kann. Durch entsprechende Konfigurationen in der Konfigurationsdatei können wir den Zugriff auf bestimmte IP-Adressen beschränken und so die Serversicherheit verbessern.

Das obige ist der detaillierte Inhalt vonWie Nginx die Zugriffskontrollkonfiguration basierend auf der IP der Anforderungsquelle implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn