Server Blocks in Nginx ermöglichen es, mehrere Websites auf einem einzigen Server sauber zu trennen und unabhängig zu betreiben. Durch die Verwendung von Server Blocks lassen sich unterschiedliche Domains, Subdomains oder Webanwendungen separat konfigurieren, inklusive eigener Dokumentenstämme, Logs und Sicherheitsoptionen. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie Server Blocks eingerichtet, optimiert und gewartet werden.
Voraussetzungen
Bevor Server Blocks eingerichtet werden, müssen einige Grundvoraussetzungen erfüllt sein:
- Ein Linux-Server mit installiertem Nginx
- Root- oder Sudo-Zugriff
- DNS-Einträge der Domains auf die Server-IP zeigen
- Grundkenntnisse im Dateisystem und Berechtigungen
Nginx Installation prüfen
Stellen Sie sicher, dass Nginx installiert und aktiv ist:
sudo systemctl status nginx
Falls nicht installiert:
sudo apt install nginx -y # Ubuntu/Debian
sudo yum install nginx -y # CentOS/RHEL
Verzeichnisstruktur für Server Blocks
Für jede Website sollte ein eigenes Verzeichnis angelegt werden, um Inhalte, Logs und Konfiguration sauber zu trennen.
Beispielstruktur
- Webroot für Domain1:
/var/www/domain1 - Webroot für Domain2:
/var/www/domain2 - Konfigurationen:
/etc/nginx/sites-available/und aktivierte Links in/etc/nginx/sites-enabled/
Server Block für Domain1 einrichten
sudo mkdir -p /var/www/domain1
sudo chown -R www-data:www-data /var/www/domain1
sudo chmod -R 755 /var/www/domain1
sudo nano /etc/nginx/sites-available/domain1.conf
server {
listen 80;
server_name www.domain1.de domain1.de;
root /var/www/domain1;
index index.html index.htm;
access_log /var/log/nginx/domain1_access.log;
error_log /var/log/nginx/domain1_error.log;
location / {
try_files $uri $uri/ =404;
}
}
Server Block für Domain2 einrichten
sudo mkdir -p /var/www/domain2
sudo chown -R www-data:www-data /var/www/domain2
sudo chmod -R 755 /var/www/domain2
sudo nano /etc/nginx/sites-available/domain2.conf
server {
listen 80;
server_name www.domain2.de domain2.de;
root /var/www/domain2;
index index.html index.htm;
access_log /var/log/nginx/domain2_access.log;
error_log /var/log/nginx/domain2_error.log;
location / {
try_files $uri $uri/ =404;
}
}
Server Blocks aktivieren
Unter Ubuntu/Debian werden die Konfigurationen aktiviert, indem symbolische Links erstellt werden:
sudo ln -s /etc/nginx/sites-available/domain1.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/domain2.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Unter CentOS/RHEL werden die Konfigurationsdateien im Verzeichnis /etc/nginx/conf.d/ abgelegt, ein Neustart reicht:
sudo systemctl restart nginx
HTTPS für Server Blocks
SSL/TLS sollte für alle Domains aktiviert werden. Let’s Encrypt bietet kostenlose Zertifikate.
Certbot Installation
sudo apt install certbot python3-certbot-nginx -y # Ubuntu/Debian
sudo yum install certbot python3-certbot-nginx -y # CentOS/RHEL
HTTPS für Domain1
sudo certbot --nginx -d domain1.de -d www.domain1.de
HTTPS für Domain2
sudo certbot --nginx -d domain2.de -d www.domain2.de
Fehlerprotokolle und Monitoring
Separate Logs pro Server Block erleichtern Monitoring und Debugging.
- Access Logs:
/var/log/nginx/domain1_access.log,/var/log/nginx/domain2_access.log - Error Logs:
/var/log/nginx/domain1_error.log,/var/log/nginx/domain2_error.log - Tools wie
tail -f, GoAccess oder ELK Stack für Analyse
Netzwerk und Subnetze
Eine saubere Netzwerkarchitektur erleichtert den Betrieb mehrerer Domains auf einem Server und die Analyse von Zugriffen.
Subnetzberechnung
Beispiel: Server-IP 10.4.1.15/24
<math>
Subnetzadresse = 10.4.1.15 & 255.255.255.0 = 10.4.1.0
Broadcastadresse = 10.4.1.0 | ~255.255.255.0 = 10.4.1.255
</math>
Netzwerkinterface konfigurieren
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 10.4.1.15/24
gateway4: 10.4.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
Best Practices
- Separate Webroot-Verzeichnisse für jede Domain
- Eigene Access- und Error-Logs pro Server Block
- HTTPS für alle Domains aktivieren
- Regelmäßige Backups der Konfigurationen und Webinhalte
- DNS-Einträge prüfen und testen
- Serverressourcen überwachen, um Überlastungen zu vermeiden
- Logrotate für Logs pro Server Block einrichten
- Security Header (HSTS, CSP, X-Frame-Options) pro Server Block konfigurieren
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.

