Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Detaillierte Erläuterung der Sicherheitskonfiguration und Schutzstrategien des Nginx-Servers

Detaillierte Erläuterung der Sicherheitskonfiguration und Schutzstrategien des Nginx-Servers

WBOY
WBOYOriginal
2023-08-04 18:25:452586Durchsuche

Detaillierte Erläuterung der Sicherheitskonfiguration und Schutzstrategien des Nginx-Servers

Übersicht:
Mit der Entwicklung des Internets und dem Aufkommen des Big-Data-Zeitalters hat die Sicherheit von Webservern immer mehr Aufmerksamkeit erhalten. Unter vielen Webservern ist Nginx aufgrund seiner Vorteile wie hoher Leistung, hoher Parallelitätsverarbeitungsfähigkeiten und flexiblem modularem Design beliebt. In diesem Artikel werden die Sicherheitskonfiguration und Schutzstrategien des Nginx-Servers ausführlich vorgestellt, einschließlich Zugriffskontrolle, Reverse-Proxy, Flussbegrenzung und HTTPS-Konfiguration usw.

1. Zugriffskontrolle

  1. IP-Blacklist und Whitelist: Durch Konfigurieren der Zulassungs- und Verweigerungsanweisungen von Nginx können Sie die IP-Blacklist und die Whitelist festlegen. In der Nginx-Konfigurationsdatei können Sie das folgende Codebeispiel verwenden:
http {
    server {
        location / {
            deny 192.168.1.1;
            allow all;
        }
    }
}

In der obigen Konfiguration wird der Zugriff mit IP 192.168.1.1 verweigert und auf andere IPs kann normal zugegriffen werden.

  1. Böswillige Anfragen verhindern: Indem Sie die Anzahl der Verbindungen begrenzen und die Zugriffshäufigkeit begrenzen, können Sie böswillige Anfrageangriffe verhindern. Dies kann mithilfe der Anweisungen limit_conn und limit_req in der Nginx-Konfigurationsdatei erreicht werden, wie unten gezeigt:
http {
    server {
        location / {
            limit_conn conn_limit_per_ip 10;
            limit_req zone=req_limit_per_ip burst=20 nodelay;
        }
    }
}

In der obigen Konfiguration ist die Anzahl gleichzeitiger Verbindungen pro IP auf 10 begrenzt und die Anforderungshäufigkeit pro IP ist auf begrenzt 20 pro Sekunde.

2. Reverse-Proxy

  1. Verstecken Sie die echte IP: Verwenden Sie Reverse-Proxy, um die echte IP zu verbergen und die Sicherheit des Servers zu schützen. Sie können den folgenden Konfigurationscode verwenden:
http {
    server {
        location / {
            proxy_pass http://backend;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
}

In der obigen Konfiguration wird die Anfrage an backend1.example.com und backend2.example.com gesendet und die tatsächliche IP der ursprünglichen Anfrage wird im HTTP-Header festgelegt .

  1. Lastausgleich: Durch Reverse-Proxy und Lastausgleich können Anfragen an mehrere Backend-Server verteilt werden, um die Systemleistung und -zuverlässigkeit zu verbessern. Sie können den folgenden Konfigurationscode verwenden:
http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

In der obigen Konfiguration werden Anforderungen gleichmäßig an die Server in backend1.example.com und backend2.example.com gesendet.

3. Aktuelle Begrenzung

  1. Zugriffsrate kontrollieren: Durch die Konfiguration der limit_req-Anweisung von Nginx können Sie die Zugriffsrate jeder IP begrenzen, um Angriffe durch böswillige Anfragen zu vermeiden. Sie können den folgenden Konfigurationscode verwenden:
http {
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s;
    server {
        location / {
            limit_req zone=req_limit_per_ip burst=20 nodelay;
        }
    }
}

In der obigen Konfiguration ist die Zugriffsrate jeder IP auf 10 Mal pro Sekunde begrenzt und die Anzahl der Anforderungsbursts ist auf 20 festgelegt.

  1. Größe des Datei-Uploads begrenzen: Durch die Konfiguration der client_max_body_size-Direktive von Nginx können Sie die Größe des Datei-Uploads begrenzen, um zu vermeiden, dass das Hochladen großer Dateien Serverressourcen belegt. Sie können den folgenden Konfigurationscode verwenden:
http {
    server {
        client_max_body_size 10m;
        ...
    }
}

In der obigen Konfiguration ist die Größe des Datei-Uploads auf 10 MB begrenzt.

4. HTTPS-Konfiguration

  1. SSL-Zertifikat generieren: Sie können Tools wie Let's Encrypt verwenden, um SSL-Zertifikate zu generieren, um die Sicherheit von HTTPS-Verbindungen zu gewährleisten.
  2. HTTPS-Verbindung konfigurieren: Mit dem folgenden Konfigurationscode können Sie eine HTTP-Verbindung in eine HTTPS-Verbindung umwandeln:
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/ssl_certificate.pem;
    ssl_certificate_key /path/to/ssl_certificate_key.pem;
    ...
}

In der obigen Konfiguration leiten Sie die HTTP-Verbindung zu einer HTTPS-Verbindung um und konfigurieren das SSL-Zertifikat und den privaten Schlüssel.

Zusammenfassung:
Dieser Artikel stellt die Sicherheitskonfiguration und Schutzstrategie des Nginx-Servers vor, einschließlich Zugriffskontrolle, Reverse-Proxy, Flussbegrenzung und HTTPS-Konfiguration usw. Durch die ordnungsgemäße Konfiguration und Verwendung dieser Richtlinien kann die Sicherheit von Servern und Websites verbessert und die Datensicherheit von Systemen und Benutzern geschützt werden. Es ist jedoch zu beachten, dass unterschiedliche Umgebungen und Anforderungen möglicherweise gezielte Konfigurationen erfordern und Entwickler ihre Auswahl und Anpassungen auf der Grundlage der tatsächlichen Bedingungen treffen sollten.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Sicherheitskonfiguration und Schutzstrategien des Nginx-Servers. 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