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 beschreibt, wie Sie Nginx-Serverblöcke unter Ubuntu 20.04 einrichten.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllt haben, bevor Sie fortfahren:
- Domänenname, der auf Ihre öffentliche Server-IP verweist.
- Nginx auf Ihrem Ubuntusystem installiert.
- Sie sind als Root oder Benutzer mit sudo-Berechtigungen angemeldet.
In einigen Artikeln wird der Begriff „Server Blocks“ als „Virtual Host“ bezeichnet. Ein virtueller Host ist ein Apache-Begriff.
Erstellen der Verzeichnisstruktur #
Das Dokumentenstammverzeichnis ist das Verzeichnis, in dem die Website-Dateien für einen Domänennamen gespeichert und als Antwort auf Anfragen bereitgestellt werden. Sie können den Dokumentenstamm an einem beliebigen Ort festlegen. In diesem Beispiel verwenden wir die folgende Verzeichnisstruktur:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
Bei jeder auf dem Server gehosteten Domain wird das Dokumentenstammverzeichnis auf /var/www/<domain_name>/public_html
gesetzt .
Erstellen Sie zunächst das Stammverzeichnis für die Domäne:
sudo mkdir -p /var/www/domain1.com/public_html
Außerdem erstellen wir eine index.html
Datei im Root-Verzeichnis der Domain-Dokumente, die angezeigt wird, wenn Sie die Domain in Ihrem Browser besuchen:
<!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>
Da die obigen Befehle als sudo-Benutzer ausgeführt werden, gehören die neu erstellten Dateien und Verzeichnisse root. Um Berechtigungsprobleme zu vermeiden, ändern Sie den Besitz des Domänendokument-Stammverzeichnisses und aller Dateien innerhalb des Verzeichnisses auf den Nginx-Benutzer (www-data
) :
sudo chown -R www-data: /var/www/domain1.com
Erstellen eines Server-Blocks #
Auf Ubuntu-Systemen befinden sich Nginx-Serverblock-Konfigurationsdateien in /etc/nginx/sites-available
Verzeichnis. Sie können aktiviert werden, indem symbolische Links zu /etc/nginx/sites-enabled
erstellt werden Verzeichnis, das Nginx beim Start gelesen hat.
Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Serverblockdatei:
/etc/nginx/sites-available/example.comserver {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public_html;
index index.html;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}
server_name
:Die Domains, die für diese Serverblockkonfiguration passen sollen.root
:Das Verzeichnis, aus dem Nginx die Domänendateien bereitstellt.access_log
,error_log
:Gibt den Speicherort für Protokolldateien an.
Die Konfigurationsdatei kann beliebig benannt werden, aber normalerweise ist es am besten, den Domänennamen zu verwenden.
Um die neue Serverblockdatei zu aktivieren, erstellen Sie einen symbolischen Link von der Datei zu sites-enabled
Verzeichnis, das Nginx beim Start gelesen hat:
sudo ln -s /etc/nginx/sites-available/example.com /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: