Webserver Setup: Nginx installieren und sicher konfigurieren

Nginx ist ein leistungsstarker, ressourcenschonender Webserver, der sowohl statische als auch dynamische Inhalte effizient bereitstellen kann. Dieses Tutorial führt Sie Schritt für Schritt durch die Installation, Grundkonfiguration und Sicherung eines Nginx-Webservers auf einem Linux-System, ideal für Einsteiger, Admins und Network Engineers, die sichere Server bereitstellen möchten.

Installation von Nginx

Die Installation hängt von der verwendeten Distribution ab. Für Debian/Ubuntu und RHEL/CentOS/AlmaLinux/Rocky Linux lauten die Schritte wie folgt:

# Debian/Ubuntu
sudo apt update
sudo apt install nginx

RHEL/CentOS/AlmaLinux/Rocky Linux

sudo dnf install nginx

Nginx-Dienst starten und aktivieren

Nach der Installation muss Nginx gestartet und für den automatischen Start beim Booten aktiviert werden.

sudo systemctl enable --now nginx
sudo systemctl status nginx

Firewall konfigurieren

Damit Clients auf den Webserver zugreifen können, müssen die HTTP- und HTTPS-Ports geöffnet werden.

# Beispiel mit UFW
sudo ufw allow 'Nginx Full'
sudo ufw status

Basis-Konfiguration

Die Hauptkonfigurationsdatei befindet sich in /etc/nginx/nginx.conf. Standardmäßig ist die Konfiguration für die meisten Zwecke ausreichend, kann aber angepasst werden.

# Test der Nginx-Konfiguration
sudo nginx -t

Nginx neu laden nach Änderungen

sudo systemctl reload nginx

Virtuelle Hosts einrichten

Für mehrere Webseiten empfiehlt sich die Nutzung von virtuellen Hosts. Erstellen Sie eine Konfigurationsdatei unter /etc/nginx/sites-available/ und aktivieren Sie diese mit einem Symlink in /etc/nginx/sites-enabled/.

# Beispiel: /etc/nginx/sites-available/meine-webseite
server {
    listen 80;
    server_name meine-webseite.de www.meine-webseite.de;
root /var/www/meine-webseite;
index index.html index.htm;

location / {
try_files $uri $uri/ =404;
}

}

Aktivieren

sudo ln -s /etc/nginx/sites-available/meine-webseite /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Ordnerstruktur und Berechtigungen

Die Webinhalte sollten in /var/www/ liegen und korrekt berechtigt sein, um den Webserverbetrieb zu ermöglichen, ohne unnötige Schreibrechte zu vergeben.

sudo mkdir -p /var/www/meine-webseite
sudo chown -R www-data:www-data /var/www/meine-webseite
sudo chmod -R 755 /var/www/meine-webseite

SSL/TLS aktivieren

HTTPS schützt die Verbindung zwischen Server und Clients. Mit Let’s Encrypt können kostenlose Zertifikate genutzt werden.

# Certbot installieren (Debian/Ubuntu)
sudo apt install certbot python3-certbot-nginx

Zertifikat erstellen

sudo certbot --nginx -d meine-webseite.de -d www.meine-webseite.de

Automatische Erneuerung testen

sudo certbot renew --dry-run

Sicherheitsbest Practices

  • Unnötige HTTP-Methoden deaktivieren (limit_except)
  • Server-Tokens verbergen: server_tokens off;
  • Standard-Konfigurationsdateien entfernen oder anpassen
  • Fail2ban nutzen, um wiederholte Angriffe auf Login-Skripte oder Admin-Panels zu blockieren
  • Regelmäßige Updates von Nginx und dem System durchführen

Logging und Monitoring

Nginx protokolliert Zugriffe und Fehler, was zur Analyse und für Monitoring-Zwecke genutzt werden kann.

# Zugriff und Fehlerprotokolle prüfen
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

Performance-Optimierungen

Für produktive Systeme können Optimierungen wie Worker-Prozesse, Caching und Gzip-Kompression aktiviert werden.

# Beispiel Gzip aktivieren in /etc/nginx/nginx.conf
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Mit diesen Schritten lässt sich ein Nginx-Webserver sauber installieren, konfigurieren und absichern. Durch die Nutzung von virtuellen Hosts, SSL/TLS, Berechtigungen und Sicherheitsmechanismen entsteht eine stabile und sichere Basis für Webanwendungen im Unternehmens- oder Homelab-Umfeld.

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.

Related Articles