Site icon bintorosoft.com

API Gateway Light: Nginx als Reverse Proxy für Microservices

Ein leichtgewichtiges API Gateway ermöglicht die zentrale Steuerung von Anfragen an Microservices. Nginx kann als Reverse Proxy eingesetzt werden, um Routing, Load Balancing, SSL-Termination und einfache Sicherheitsfunktionen bereitzustellen. Dieser Leitfaden zeigt Einsteigern, IT-Studierenden und Junior Network Engineers, wie Nginx als API Gateway für Microservices konfiguriert wird.

Voraussetzungen

Grundkonfiguration von Nginx als Reverse Proxy

Der Reverse Proxy leitet Anfragen an die jeweiligen Microservices weiter und kann SSL sowie Caching integrieren.

server {
    listen 80;
    server_name api.example.com;

    location /service1/ {
        proxy_pass http://127.0.0.1:5001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /service2/ {
        proxy_pass http://127.0.0.1:5002/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

SSL/TLS Absicherung

HTTPS schützt die Kommunikation zwischen Clients und dem API Gateway.

server {
    listen 443 ssl;
    server_name api.example.com;

    ssl_certificate /etc/ssl/certs/api.example.com.crt;
    ssl_certificate_key /etc/ssl/private/api.example.com.key;

    location /service1/ {
        proxy_pass http://127.0.0.1:5001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /service2/ {
        proxy_pass http://127.0.0.1:5002/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Load Balancing für Microservices

Nginx kann die Last auf mehrere Instanzen eines Services verteilen.

upstream service1_pool {
    server 127.0.0.1:5001;
    server 127.0.0.1:5003;
}

server {
    listen 80;
    server_name api.example.com;

    location /service1/ {
        proxy_pass http://service1_pool/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Rate Limiting und Sicherheit

Um Microservices vor Überlast oder Brute-Force zu schützen, können Limits gesetzt werden:

http {
    limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

    server {
        listen 80;
        server_name api.example.com;

        location /service1/ {
            limit_req zone=api_limit burst=20 nodelay;
            proxy_pass http://service1_pool/;
        }
    }
}

Caching für bessere Performance

Nginx kann Antworten von Microservices zwischenspeichern, um Latenz zu reduzieren.

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=api_cache:10m max_size=1g inactive=60m;
server {
    location /service1/ {
        proxy_cache api_cache;
        proxy_cache_valid 200 5m;
        proxy_pass http://service1_pool/;
    }
}

Monitoring und Logging

Netzwerk- und Subnetzplanung

In Multi-Server-Setups ist eine klare Netzwerksegmentierung wichtig.

IPv4 Subnetz

<math>
Gateway-IP = 192.168.380.10/24
Subnetzadresse = 192.168.380.10 & 255.255.255.0 = 192.168.380.0
Broadcastadresse = 192.168.380.0 | ~255.255.255.0 = 192.168.380.255
</math>

IPv6 Subnetz

<math>
Gateway-IP = 2001:db8:abcd:380::10/64
Subnetzadresse = 2001:db8:abcd:380:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:380::0
Broadcastadresse = 2001:db8:abcd:380: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