Mit Nginx Server Blocks können Sie mehr als eine Website auf einem einzigen Computer ausführen. Dies ist nützlich, da Sie für jede Site das Site Document Root (das Verzeichnis, das die Website-Dateien enthält), eine separate Sicherheitsrichtlinie erstellen, verschiedene SSL-Zertifikate verwenden und vieles mehr können.
In diesem Tutorial erklären wir, wie Nginx-Serverblöcke unter CentOS 7 eingerichtet werden.
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 auf Ihrem CentOS-System installiert.
- Angemeldet als root oder Benutzer mit sudo-Berechtigungen.
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. Wir können den Dokumentenstamm an einen beliebigen Ort setzen, den Sie möchten.
Wir werden die folgende Verzeichnisstruktur verwenden:
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Grundsätzlich erstellen wir ein separates Verzeichnis für jede Domain, die wir auf unserem Server hosten möchten, innerhalb von /var/www
Verzeichnis. Innerhalb dieses Verzeichnisses erstellen wir ein 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 unsere Domain example.com
zu erstellen :
sudo mkdir -p /var/www/example.com/public_html
Zu Testzwecken erstellen wir eine index.html
Datei im Dokumentstammverzeichnis der Domain.
Öffnen Sie Ihren Texteditor und erstellen Sie die Demo index.html
Datei:
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>
In diesem Beispiel führen wir die Befehle als sudo-Benutzer aus und die neu erstellten Dateien und Verzeichnisse gehören dem Root-Benutzer.
Um Berechtigungsprobleme zu vermeiden, ändern Sie den Besitz des Domänendokument-Stammverzeichnisses auf den Nginx-Benutzer (nginx
):
sudo chown -R nginx: /var/www/example.com
Erstellen Sie einen Serverblock #
Nginx-Serverblock-Konfigurationsdateien müssen mit .conf
enden und werden in /etc/nginx/conf.d
gespeichert Verzeichnis.
Öffnen Sie den Editor Ihrer Wahl und erstellen Sie eine Serverblock-Konfigurationsdatei für example.com
.
sudo nano /etc/nginx/conf.d/example.com.conf
Sie können die Konfigurationsdatei beliebig benennen. Normalerweise ist es am besten, den Domainnamen 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 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: