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) festlegen, eine separate Sicherheitsrichtlinie erstellen, verschiedene SSL-Zertifikate verwenden und vieles mehr.
Dieser Artikel beschreibt, wie Sie Nginx-Serverblöcke unter CentOS 8 einrichten.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- Domänenname, der auf Ihre öffentliche Server-IP verweist.
- Nginx auf Ihrem CentOS-System 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 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. Der Dokumentenstamm kann an einen beliebigen Ort gesetzt werden.
Wir werden die folgende Verzeichnisstruktur verwenden:
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Für jede Domain, die auf dem Server gehostet wird, erstellen wir ein separates Verzeichnis in /var/www
. Innerhalb des Domainverzeichnisses erstellen wir einen public_html
Verzeichnis, das das Stammverzeichnis der Domänendokumente sein wird und die Dateien der Domänenwebsite speichern wird.
Beginnen wir damit, das Root-Verzeichnis für die Domain example.com
zu erstellen :
sudo mkdir -p /var/www/example.com/public_html
Erstellen Sie zu Testzwecken eine index.html
Datei im Dokumentstammverzeichnis der Domain:
sudo nano /var/www/example.com/public_html/index.html
Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei 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 Dokumentenstammverzeichnisses der Domäne auf den Benutzer nginx
:
sudo chown -R nginx: /var/www/example.com
Erstellen eines Server-Blocks #
Unter CentOS müssen die Nginx-Serverblock-Konfigurationsdateien standardmäßig mit .conf
enden und werden in /etc/nginx/conf.d
gespeichert Verzeichnis.
Öffnen Sie Ihren Texteditor und erstellen Sie die Konfigurationsdatei für die Domain:
sudo nano /etc/nginx/conf.d/example.com.conf
Die Konfigurationsdatei kann beliebig benannt werden, aber normalerweise ist es am besten, den Domänennamen zu verwenden.
Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei ein:
/etc/nginx/conf.d/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;
}
}
Speichern Sie die Datei und überprüfen Sie die Nginx-Konfiguration auf Syntaxfehler:
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: