Site icon bintorosoft.com

Rate Limiting in Nginx: API und Login-Endpunkte schützen

Rate Limiting schützt Webserver vor Überlastung durch zu viele Anfragen, bösartige Bots oder Brute-Force-Angriffe. Besonders sensible Endpunkte wie Login- oder API-Routen profitieren davon, um Serverressourcen zu schonen und Angriffe frühzeitig abzuwehren. In diesem Leitfaden lernen Einsteiger, IT-Studierende und Junior Network Engineers, wie Nginx Rate Limiting korrekt konfiguriert wird.

Grundlagen von Rate Limiting

Nginx ermöglicht die Begrenzung von Zugriffen pro IP-Adresse innerhalb eines definierten Zeitraums. Dabei werden zwei Hauptmodule verwendet:

Installation und Voraussetzungen

Rate Limiting konfigurieren

Definition der Limit-Zone

Im Hauptblock von nginx.conf oder einer Serverkonfiguration wird die Zone definiert:

http {
    # Zone für 10MB Speicher pro IP
    limit_req_zone $binary_remote_addr zone=api_limit:10m rate=5r/s;
}

Anwendung auf Endpunkte

Die definierte Zone wird auf bestimmte Locations angewendet:

server {
    listen 80;
    server_name example.com;

    location /api/ {
        limit_req zone=api_limit burst=10 nodelay;
        proxy_pass http://backend;
    }

    location /login {
        limit_req zone=api_limit burst=5 nodelay;
        proxy_pass http://backend;
    }
}

Monitoring und Logging

Nginx protokolliert abgelehnte Anfragen, sodass verdächtige Muster erkannt werden:

http {
    log_format rate_limit '$remote_addr - $status - $request_time';
    access_log /var/log/nginx/access.log rate_limit;
}

Anfragen, die das Limit überschreiten, erhalten HTTP-Status 503 oder 429, abhängig von der Konfiguration.

Erweiterte Optionen

Netzwerk- und Subnetzplanung

In Multi-Server-Umgebungen sollten IP-Subnetze und Last-Balancer berücksichtigt werden, um konsistente Rate-Limits zu gewährleisten.

IPv4 Subnetz

<math>
Server-IP = 192.168.360.10/24
Subnetzadresse = 192.168.360.10 & 255.255.255.0 = 192.168.360.0
Broadcastadresse = 192.168.360.0 | ~255.255.255.0 = 192.168.360.255
</math>

IPv6 Subnetz

<math>
Server-IP = 2001:db8:abcd:360::10/64
Subnetzadresse = 2001:db8:abcd:360:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:360::0
Broadcastadresse = 2001:db8:abcd:360:ffff:ffff:ffff:ffff
</math>

Best Practices

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version