Website-Suche

Richten Sie Nginx-Serverblöcke (virtuelle Hosts) unter CentOS/RHEL 8 ein


Ein Nginx-Serverblock entspricht einem virtuellen Apache-Host und ermöglicht es Ihnen, mehr als eine Domain oder Website auf Ihrem Server zu hosten.

In diesem Artikel erfahren Sie, wie Sie Nginx-Serverblöcke (virtuelle Hosts) unter CentOS 8 und RHEL 8 Linux einrichten.

Voraussetzungen:

  • Ein A-Eintrag für Ihre Domain. Vereinfacht ausgedrückt bezieht sich ein A-Eintrag auf einen DNS-Eintrag, bei dem der Domänenname auf die öffentliche IP des Servers verweist, in diesem Fall des Nginx-Webservers. In diesem Leitfaden verwenden wir den Domainnamen crazytechgeek.info.
  • Ein Nginx-Server oder LEMP-Stack, der auf einer CentOS 8- oder RHEL 8-Instanz installiert ist.
  • Ein angemeldeter Benutzer mit Sudo-Berechtigungen.

Lass uns anfangen!

Schritt 1: Erstellen Sie ein Nginx-Dokumentstammverzeichnis

Sie müssen sofort ein benutzerdefiniertes Web-Root-Verzeichnis für die Domain erstellen, die Sie hosten möchten. In unserem Fall erstellen wir das Verzeichnis wie gezeigt mit der Option mkdir -p, um alle erforderlichen übergeordneten Verzeichnisse zu erstellen:

sudo mkdir -p /var/www/crazytechgeek.info/html

Weisen Sie anschließend die Verzeichnisberechtigungen mithilfe der Umgebungsvariablen $USER zu. Stellen Sie dabei sicher, dass Sie als normaler Benutzer und nicht als Root-Benutzer angemeldet sind.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

Weisen Sie als Nächstes rekursiv die richtigen Verzeichnisberechtigungen zu, wie gezeigt:

sudo chmod -R 755 /var/www/crazytechgeek.info/html

Schritt 2: Erstellen Sie eine Beispielseite für die Domain

Als Nächstes erstellen wir eine Datei index.html im benutzerdefinierten Web-Stammverzeichnis, die von der Domain bereitgestellt wird, sobald eine Anfrage gestellt wird.

sudo vim /var/www/crazytechgeek.info/html/index.html

Fügen Sie in die Datei den folgenden Beispielinhalt ein.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
  <h1>Awesome! Your Nginx server block is working!</h1>
    </body>
</html>

Speichern und beenden Sie die Konfigurationsdatei.

Schritt 3: Erstellen Sie einen Nginx-Serverblock in CentOS

Damit der Nginx-Webserver den Inhalt der in Schritt 2 erstellten Datei index.html bereitstellen kann, müssen wir eine Serverblockdatei mit den entsprechenden Anweisungen erstellen. Deshalb erstellen wir einen neuen Serverblock unter:

sudo vim /etc/nginx/conf.d/crazytechgeek.info.conf

Fügen Sie als Nächstes die unten angezeigte Konfiguration ein.

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info www.crazytechgeek.info;

        location / {
                try_files $uri $uri/ =404;
        }

		
    access_log /var/log/nginx/crazytechgeek.info.access.log;
    error_log /var/log/nginx/crazytechgeek.info.error.log;

}

Wenn Sie fertig sind, speichern Sie die Änderungen und verlassen Sie die Konfigurationsdatei. Um zu bestätigen, dass alle Nginx-Konfigurationen einwandfrei und fehlerfrei sind, führen Sie den folgenden Befehl aus:

sudo nginx -t

Die folgende Ausgabe sollte eine Bestätigung sein, dass Sie startklar sind!

Starten Sie abschließend Ihren Nginx-Webserver neu und vergewissern Sie sich, dass er wie erwartet läuft:

sudo systemctl restart nginx
sudo systemctl status nginx

Schritt 4: Testen des Nginx-Serverblocks in CentOS

Wir sind alle mit den Konfigurationen fertig. Der einzige verbleibende Teil besteht darin, zu bestätigen, ob unser Serverblock Inhalte im Web-Stammverzeichnis bereitstellt, das zuvor in der Datei index.html definiert wurde.

Öffnen Sie dazu einfach Ihren Browser und gehen Sie wie gezeigt zur Domain Ihres Servers:

http://domain-name

Wie beobachtet, werden unsere Inhalte vom Serverblock bereitgestellt, ein klares Zeichen dafür, dass alles gut gelaufen ist.

Schritt 5: Aktivieren Sie HTTPS für die auf Nginx gehostete Domäne

Sie können erwägen, Ihre Domain mit Lets Encrypt SSL zu verschlüsseln, um eine Schutzebene hinzuzufügen und den Datenverkehr zum und vom Webserver zu sichern.

sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx

Um zu bestätigen, dass Ihre Domain korrekt für HTTPS konfiguriert ist, besuchen Sie https://yourwebsite.com/ in Ihrem Browser und suchen Sie nach dem Schlosssymbol in der URL-Leiste.

Abschluss

Wir haben erfolgreich einen Nginx-Serverblock auf CentOS 8 und RHEL 8 eingerichtet. Sie können den Vorgang mit demselben Verfahren für mehrere Domänen wiederholen.