Junior
Wofür wird Nginx verwendet?
sobes.tech KI
Antwort von AI
Nginx ist ein leistungsstarker asynchroner Webserver und Reverse-Proxy, der verwendet wird für:
- Servierung statischer Dateien: Schnelle und effiziente Auslieferung von HTML, CSS, JavaScript, Bildern und anderen statischen Ressourcen. Dank seiner asynchronen Architektur kann er eine große Anzahl gleichzeitiger Verbindungen mit geringem Ressourcenverbrauch verarbeiten.
- Reverse-Proxy: Weiterleitung von Client-Anfragen an einen oder mehrere Backend-Server (Anwendungen, API) und Rückgabe der Antworten an die Clients. Dies ermöglicht Lastverteilung, Sicherheitsverbesserungen (durch Verschleierung der internen Netzwerkstruktur) und SSL-Terminierung.
- Lastverteilung: Verteilung eingehender Anfragen auf mehrere Server zur Erhöhung der Verfügbarkeit und Skalierbarkeit der Anwendung. Unterstützt verschiedene Algorithmen (z.B. Round Robin, Least Connections).
- Caching: Zwischenspeicherung statischer und dynamischer Ressourcen zur Reduzierung der Backend-Last und Beschleunigung der Antwortzeiten.
- SSL/TLS-Terminierung: Entschlüsselung des HTTPS-Datenverkehrs vor Weiterleitung an das Backend, was die Serverlast reduziert und eine zentrale Zertifikatsverwaltung ermöglicht.
- Komprimierung: Komprimierung von Daten (z.B. Gzip) vor Versand an den Client, um den Datenverkehr zu verringern und das Laden der Seiten zu beschleunigen.
- Anfrage-Ratenbegrenzung: Schutz der Backends vor Überlastung durch Begrenzung der Anfragen pro Client innerhalb eines bestimmten Zeitraums.
- Web Application Firewall (WAF): Grundlegender Schutz vor gängigen Webangriffen (z.B. SQL-Injektionen, XSS).
# Beispielkonfiguration für Nginx zum Servieren statischer Dateien und Proxy für APIs
server {
listen 80;
server_name example.com; # Domain-Name
location / {
root /var/www/html; # Pfad zu statischen Dateien
index index.html;
}
location /api/ {
proxy_pass http://backend_server:8080; # Proxy-Anfragen an API an einen anderen Server
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}