Mit Nginx Server Blocks können Sie mehr als eine Website auf einem einzigen Computer ausführen. Mit Server-Blöcken können Sie das Site Document Root (das Verzeichnis, das die Website-Dateien enthält) angeben, eine separate Sicherheitsrichtlinie für jede Site erstellen, unterschiedliche SSL-Zertifikate für jede Site verwenden und vieles mehr.
In diesem Tutorial zeigen wir Ihnen, wie Sie Nginx-Serverblöcke unter Debian 9 einrichten.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- Domänenname, der auf Ihre öffentliche Server-IP verweist. Wir werden
example.com
verwenden . - Nginx installiert.
- Sie sind als Root oder Benutzer mit sudo-Berechtigungen angemeldet.
Server Blocks
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. Das Dokumenten-Stammverzeichnis kann ein beliebiges Verzeichnis auf Ihrem Debian-Server sein.
Wir werden die folgende Verzeichnisstruktur verwenden:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
Wir erstellen ein separates Verzeichnis für jede Domain, die auf dem Server innerhalb von /var/www
gehostet wird Verzeichnis. In jedem dieser Verzeichnisse erstellen wir ein public_html
Verzeichnis, in dem die Dateien der Domain-Website gespeichert werden.
Erstellen Sie zunächst das Stammverzeichnis für die Domain example.com
:
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, die durch symbolische Links zu /etc/nginx/sites-enabled/
aktiviert werden Verzeichnis.
Öffnen Sie den Editor Ihrer Wahl 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;
}
}
Sie können die Konfigurationsdatei beliebig benennen, 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 schließlich zu überprüfen, ob der Serverblock wie erwartet funktioniert, öffnen Sie http://example.com
in Ihrem Browser Ihrer Wahl, und Sie sehen etwa Folgendes: