Ein Serverblock ist eine Nginx-Anweisung, die Einstellungen für eine bestimmte Domain definiert, sodass Sie mehr als eine Website auf einem einzigen Server ausführen können. Für jede Website können Sie das Site Document Root (das Verzeichnis, das die Website-Dateien enthält), eine separate Sicherheitsrichtlinie erstellen, verschiedene SSL-Zertifikate verwenden und vieles mehr.
Dieser Artikel erklärt, wie man Nginx-Serverblöcke unter Debian 10 einrichtet.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben:
- Domänenname, der auf Ihre öffentliche Server-IP verweist.
- Nginx auf Ihrem Debiansystem installiert.
- Sie sind als Root oder Benutzer mit sudo-Berechtigungen angemeldet.
In einigen Dokumentationen wird der Begriff Server Blocks
verwendet wird als Virtual host
bezeichnet .Ein virtueller Host ist ein Apache-Begriff.
Erstellen Sie die Verzeichnisstruktur #
Das Dokumentenstammverzeichnis ist das Verzeichnis, in dem die Website-Dateien für einen Domänennamen gespeichert und als Antwort auf Anfragen bereitgestellt werden. Der Dokumentenstamm kann ein beliebiges Verzeichnis auf dem Server sein.
Die Beispiele in diesem Artikel verwenden die folgende Verzeichnisstruktur:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
Grundsätzlich erstellen wir für jede Domain, die wir auf unserem Server hosten möchten, ein separates Verzeichnis im Verzeichnis /var/www
Verzeichnis. In jedem dieser Verzeichnisse erstellen wir ein public_html
Verzeichnis, in dem die Dateien der Domain-Website gespeichert werden.
Führen Sie den folgenden Befehl aus, um das Stammverzeichnis für die Domäne example.com
zu erstellen :
sudo mkdir -p /var/www/example.com/public_html
Als nächstes erstellen Sie eine index.html
Datei im Dokumentstammverzeichnis der Domain:
sudo nano /var/www/example.com/public_html/index.html
Öffnen Sie die Datei und fügen Sie die folgenden Zeilen ein:
/var/www/example.com/public_html/index.html<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Um Berechtigungsprobleme zu vermeiden, ändern Sie den Besitz des Domänendokument-Stammverzeichnisses auf den Nginx-Benutzer (www-data
):
sudo chown -R www-data: /var/www/example.com
Erstellen Sie einen Serverblock #
Standardmäßig werden auf Debian-Systemen Konfigurationsdateien für Nginx-Serverblöcke in /etc/nginx/sites-available
gespeichert Verzeichnis. Um eine Konfiguration zu aktivieren, müssen Sie die Datei symbolisch mit /etc/nginx/sites-enabled/
verknüpfen Verzeichnis.
Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Serverblockdatei:
sudo nano /etc/nginx/sites-available/example.com.conf
/etc/nginx/sites-available/example.com.confserver {
listen 80;
listen [::]:80;
root /var/www/example.com/public_html;
index index.html;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
Die Konfigurationsdatei kann beliebig benannt werden, aber normalerweise ist es am besten, den Domänennamen zu verwenden.
Aktivieren Sie die neue Serverblockdatei, indem Sie einen symbolischen Link von der Datei zu sites-enabled
erstellen Verzeichnis:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Testen Sie die Nginx-Konfiguration auf korrekte Syntax:
sudo nginx -t
Wenn keine Fehler vorhanden sind, sieht die Ausgabe so aus:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie den Nginx-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart nginx
Um zu überprüfen, ob der Serverblock wie erwartet funktioniert, öffnen Sie http://example.com
in Ihrem Browser, und Sie sehen etwa Folgendes: