Nginx ist einer der leistungsfähigsten und ressourcenschonendsten Webserver, der sowohl für kleine Projekte als auch für stark frequentierte Websites geeignet ist. In diesem Leitfaden erklären wir Schritt für Schritt, wie Nginx installiert, konfiguriert und für optimale Performance optimiert wird. Der Fokus liegt auf Best Practices, die sowohl Einsteigern als auch professionellen Netzwerkingenieuren helfen, einen stabilen und schnellen Webserver einzurichten.
Systemvorbereitung
Bevor Nginx installiert wird, sollte das Linux-System aktualisiert und auf den aktuellen Stand gebracht werden.
Systemupdate
sudo apt update
sudo apt upgrade -y
Für CentOS:
sudo yum update -y
Notwendige Pakete installieren
Einige Basiswerkzeuge sind hilfreich für die Installation und Verwaltung von Nginx:
sudo apt install wget curl git unzip -y
Nginx Installation
Nginx kann über die Paketverwaltung installiert oder aus den offiziellen Repositories kompiliert werden. Für die meisten Anwendungsfälle reicht die Paketinstallation.
Installation unter Ubuntu/Debian
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
Installation unter CentOS/RHEL
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
Grundlegende Konfiguration
Nach der Installation sollten grundlegende Einstellungen wie Benutzer, Serverblöcke und Protokolle konfiguriert werden.
Hauptkonfigurationsdatei
Die Hauptdatei befindet sich unter /etc/nginx/nginx.conf. Wichtige Parameter:
- worker_processes: Anzahl der Prozesse, optimalerweise die Anzahl der CPU-Kerne.
- worker_connections: Maximale gleichzeitige Verbindungen pro Prozess.
- keepalive_timeout: Dauer offener Verbindungen für Clients.
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
}
Serverblöcke (Virtual Hosts)
Serverblöcke ermöglichen das Hosting mehrerer Websites auf einem Server.
Beispiel für einen Serverblock
sudo nano /etc/nginx/sites-available/meinewebsite
server { listen 80; server_name meinewebsite.de www.meinewebsite.de;root /var/www/meinewebsite;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
error_log /var/log/nginx/meinewebsite_error.log;
access_log /var/log/nginx/meinewebsite_access.log;}
sudo ln -s /etc/nginx/sites-available/meinewebsite /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginxPerformance-Optimierung
Nginx bietet zahlreiche Optionen, um die Performance zu steigern, insbesondere bei stark frequentierten Websites.
Caching aktivieren
- Static Content Caching: Für CSS, JS, Bilder
- Proxy Caching: Für dynamische Inhalte
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
Gzip-Kompression aktivieren
http {
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
Keepalive optimieren
keepalive_timeout 65;
tcp_nopush on;
tcp_nodelay on;
Worker-Prozesse und Verbindungen
Die Anzahl der Prozesse sollte automatisch die Anzahl der CPU-Kerne berücksichtigen:
worker_processes auto;
events {
worker_connections 4096;
}
Sicherheit
Ein abgesicherter Webserver schützt vor unbefugtem Zugriff und Angriffen.
Firewall konfigurieren
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status
SSL-Zertifikate
HTTPS ist Pflicht für sichere Verbindungen. Let’s Encrypt bietet kostenlose Zertifikate.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx
Monitoring und Logs
Überwachung ist essentiell, um die Stabilität und Performance zu gewährleisten.
Log-Dateien prüfen
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
Status-Seite aktivieren
location /nginx_status {
stub_status;
allow 127.0.0.1;
deny all;
}
Netzwerkkonfiguration für Nginx
Ein korrekt konfiguriertes Netzwerk garantiert Erreichbarkeit und Performance.
Subnetzberechnung
Beispiel: IP 10.0.0.15/24
<math>
Subnetzadresse = 10.0.0.15 & 255.255.255.0 = 10.0.0.0
Broadcastadresse = 10.0.0.0 | ~255.255.255.0 = 10.0.0.255
</math>
Netzwerkinterface konfigurieren
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 10.0.0.15/24
gateway4: 10.0.0.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
Zusätzliche Tools und Best Practices
- PHP-FPM für effiziente PHP-Ausführung
- Fail2ban für Schutz gegen Brute-Force-Angriffe
- Logrotate für automatische Logverwaltung
- Let’s Encrypt für automatische Zertifikatserneuerung
- Content Delivery Network (CDN) zur Entlastung des Servers
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:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











