Site icon bintorosoft.com

Server Blocks in Nginx: Mehrere Websites sauber trennen

Penguin with glasses and a surprised look on his face is looking at a laptop on white background.

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:

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

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.

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

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:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version