Webproxy mit nginx für HTTP und X.509 Zertifikate

Aus Xinux Wiki
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Webproxy mit Nginx für HTTP und X.509-Zertifikate

Einführung

  • Nginx kann als Reverse Proxy für HTTP- und HTTPS-Dienste verwendet werden.
  • X.509-Zertifikate ermöglichen die TLS-Verschlüsselung für sichere Verbindungen.
  • Der Proxy kann Anfragen an interne Webserver weiterleiten und dabei SSL/TLS offloaden.

Installation von Nginx

Debian/Ubuntu

  • Nginx-Server installieren:
  • sudo apt update
  • sudo apt install nginx
  • Dienst starten und aktivieren:
  • sudo systemctl start nginx
  • sudo systemctl enable nginx

RHEL/CentOS

  • Nginx-Repository hinzufügen und installieren:
  • sudo dnf install nginx
  • Dienst starten und aktivieren:
  • sudo systemctl start nginx
  • sudo systemctl enable nginx

Grundlegende Proxy-Konfiguration

TLS/SSL mit X.509-Zertifikaten

  • Selbstsigniertes Zertifikat erstellen:
  • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
  • Beispielkonfiguration mit TLS:
server {
    listen 443 ssl;
    server_name secure.example.com;

    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    location / {
        proxy_pass http://backend.local;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  • Nginx neu laden:
  • sudo systemctl reload nginx

Zugriffsbeschränkung nach IP

  • Nur bestimmten IPs Zugriff gewähren:
location / {
    allow 192.168.1.100;
    deny all;
    proxy_pass http://backend.local;
}

Load Balancing mit Nginx

  • Mehrere Backend-Server verteilen:
upstream backend_servers {
    server backend1.local;
    server backend2.local;
}

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

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Aufgaben

  • Richte einen Reverse Proxy für einen internen Dienst ein.
  • Konfiguriere TLS mit einem selbstsignierten Zertifikat.
  • Implementiere eine Zugriffsbeschränkung nach IP-Adresse.
  • Setze Load Balancing zwischen mehreren Backend-Servern um.

Fazit

  • Nginx ist ein leistungsfähiger Webproxy für HTTP und HTTPS.
  • TLS-Zertifikate bieten Sicherheit und Vertrauenswürdigkeit.
  • Load Balancing und Zugriffsbeschränkungen erhöhen die Skalierbarkeit und Sicherheit.