GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So konfigurieren Sie Nginx-Serverblöcke unter Ubuntu 18.04/20.04

In Nginx Server blockiert werden verwendet, um bestimmte Domäneninformationen zu definieren. Es hilft, mehrere Domains oder Websites zu hosten. Jeder Block enthält spezifische Domäneninformationen wie Dokumentenstamm, SSL, Port und mehr. Nginx-Serverblöcke ähneln virtuellen Apache-Hosts.

In diesem Tutorial lernen wir, wie man Nginx-Serverblöcke konfiguriert auf Ubuntu 18.04/20.04 .

Voraussetzungen

Erfordert eine Ubuntu 18.04/20.04-Instanz. Auf der Instanz sollte Nginx installiert sein. Benötigen Sie einen Benutzer mit sudo-Zugriff.

Schritt 1. 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, aber in diesem Artikel verwenden wir die folgende Verzeichnisstruktur:

/var/www/
├── domain1.com
│   └── images
│   └── index.html
│   └── style.css
├── domain2.net
│   └── images
│   └── index.html
│   └── style.css

Grundsätzlich erstellen wir für jede Domain, die wir auf unserem Server hosten möchten, ein separates Verzeichnis im Verzeichnis /var/www Verzeichnis.

Lassen Sie uns das Root-Verzeichnis für unsere Domains erstellen:

$ sudo mkdir -p /var/www/domain1.com

Zu Testzwecken erstellen wir ein index.html-, style.css-Dateien- und Bildverzeichnis innerhalb des Dokumentenstammverzeichnisses der Domain.

$ cd /var/www/domain1.com/
/var/www/domain1.com$ sudo mkdir images index.html style.css

Öffnen Sie unseren Editor und erstellen Sie die Demodatei:

/var/www/domain1.com/index.html
<!DOCTYPE html> <html lang="en" dir="ltr">

<head> <meta charset="utf-8">

<title>Welcome to domain1.com</title> <link rel="stylesheet" href="style.css"/>

</head>

<body> <h1 style="color:green;text-align:center;">Success! domain1.com home page!</h1>

</body>

</html>

Hier führen wir die Befehle als sudo aus Benutzer und die neu erstellten Dateien und Verzeichnisse gehören dem root Benutzer.

Um Berechtigungsprobleme zu vermeiden, können wir den Besitz des Stammverzeichnisses der Domänendokumente auf den Nginx-Benutzer (www-data) ändern :

$ sudo chown -R www-data: /var/www/domain1.com

Wir werden die gleichen Verfahren mit domain2.net durchführen

Schritt 2. Nginx-Server-Blockdateien für jede Domain erstellen

Jetzt, da wir den Inhalt haben, den wir bereitstellen möchten, müssen wir tatsächlich die Serverblöcke erstellen, die Nginx mitteilen, wie dies zu tun ist.

Standardmäßig enthält Nginx einen Serverblock namens dfault die wir als Vorlage für unsere eigenen Konfigurationen verwenden können. Wir beginnen mit dem Design des Serverblocks unserer ersten Domain, den wir dann für unsere zweite Domain kopieren und die notwendigen Änderungen vornehmen werden.

1) Erstellen Sie die erste Nginx-Serverblockdatei

Wie oben erwähnt, erstellen wir unsere erste Serverblock-Konfigurationsdatei, indem wir die Standarddatei kopieren:

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/domain1.com

Öffnen Sie nun die neu erstellte Datei in Ihrem Texteditor mit sudo-Berechtigungen:

$ sudo nano /etc/nginx/sites-available/domain1.com

Nach dem Bearbeiten der Datei sieht sie etwa so aus:

/etc/nginx/sites-available/domain1.com
server { 

listen 80; 

listen [::]:80; 

root /var/www/domain1.com; 

index index.html index.htm index.nginx-debian.html; 

server_name domain1.com www.domain1.com; 

location / 

    { try_files $uri $uri/ =404; 

  } 
}

Das ist alles, was wir für eine Grundkonfiguration benötigen. Speichern und schließen Sie die Datei, um Ctrl zu beenden + x .

2) Erstellen Sie die zweite Nginx-Serverblockdatei

Nachdem wir nun unsere erste Nginx-Serverblockkonfiguration haben, können wir diese als Grundlage für unsere zweite Datei verwenden. Kopieren Sie es, um eine neue Datei zu erstellen:

$ sudo cp /etc/nginx/sites-available/domain1.com /etc/nginx/sites-available/domain2.net

Öffnen Sie die neue Datei mit sudo Privilegien in Ihrem Editor:

$ sudo nano /etc/nginx/sites-available/domain2.net

Passen Sie die Root-Direktive so an, dass sie auf das Dokument root unserer zweiten Domain verweist und passen Sie den server_name an um mit dem Domain-Namen Ihrer zweiten Website übereinzustimmen (achten Sie darauf, alle Aliasnamen anzugeben).

Wenn Sie fertig sind, sieht unsere Datei wahrscheinlich so aus:

/etc/nginx/sites-available/domain2.net
server { 

listen 80; 

listen [::]:80; 

root /var/www/domain2.net; 

index index.html index.htm index.nginx-debian.html; 

server_name domain2.net www.domain2.net; 

location / 

{ try_files $uri $uri/ =404; 

  } 
}

Speichern und schließen Sie die Datei, um Ctrl zu beenden + x .

Schritt 3. Aktivieren Sie unsere Nginx-Serverblöcke und starten Sie Nginx neu

Jetzt, da wir unsere Serverblockdateien haben, müssen wir sie aktivieren. Wir können dies tun, indem wir symbolische Links von diesen Dateien zu sites-enabled erstellen Verzeichnis, aus dem Nginx beim Start liest.

Wir können diese Links erstellen, indem wir Folgendes eingeben:

$ sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/domain2.net /etc/nginx/sites-enabled/

Diese Dateien befinden sich jetzt im aktivierten Verzeichnis. Wir haben jetzt drei Serverblöcke aktiviert:

1. domain1.com:Antwortet auf Anfragen für domain1.com und www.domain1.com
2. domain2.net:Antwortet auf Anfragen für domain2.net und www.domain2.net
3. Standard:Reagiert auf alle Anfragen auf Port 80, die nicht mit den anderen beiden Blöcken übereinstimmen.

Um ein mögliches Hash-Bucket-Speicherproblem zu vermeiden, das durch das Hinzufügen zusätzlicher Servernamen entstehen kann, werden wir einen einzelnen Wert in unserer /etc/nginx/nginx.conf-Datei anpassen. Öffnen Sie die Datei jetzt:

$ sudo nano /etc/nginx/nginx.conf

Suchen Sie in der Datei server_names_hash_bucket_size Richtlinie. Entfernen Sie das # Symbol zum Auskommentieren der Zeile:

/etc/nginx/nginx.conf
http { . . . server_names_hash_bucket_size 64; . . . }

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Testen Sie als Nächstes, um sicherzustellen, dass keine unserer Nginx-Dateien Syntaxfehler enthält:

$ sudo nginx -t

Wenn keine Probleme gefunden wurden, starten Sie Nginx neu, um unsere Änderungen zu aktivieren:

$ sudo systemctl restart nginx

Nginx sollte jetzt beide unserer Domainnamen bedienen.

Schritt 4. Verifizierung durch Zugriff auf die Website

Jetzt, da wir alle eingerichtet sind, sollten wir testen, ob unsere Serverblöcke korrekt funktionieren. Wir können dies tun, indem wir die Domains in unserem Webbrowser besuchen:

http://domain1.com

Sie sollten eine Seite sehen, die so aussieht:

Wenn Sie Ihren zweiten Domainnamen besuchen, sollten Sie eine etwas andere Seite sehen:

http://domain2.net

Schlussfolgerung

In diesem Tutorial haben wir gelernt, wie man den Nginx-Serverblock unter Ubuntu 18.04/20.04 konfiguriert. Mithilfe von Nginx-Serverblöcken haben wir zwei Domains eingerichtet, um Webanfragen zu bedienen.


Ubuntu
  1. So richten Sie Nginx-Serverblöcke unter Ubuntu 18.04 ein

  2. So installieren Sie Nginx unter Ubuntu 20.04

  3. So richten Sie Nginx-Serverblöcke unter Ubuntu 20.04 ein

  4. So konfigurieren Sie HAProxy auf Debian 9 / Ubuntu 16.04 Server

  5. So installieren und konfigurieren Sie Nginx unter Ubuntu 18.04 / Debian 9

So installieren Sie MongoDB in Ubuntu 22.04/20.04

So installieren Sie PHP 8 unter Ubuntu 22.04/20.04

So starten oder laden Sie NGINX auf einem Ubuntu 20.04-Server neu

So installieren und konfigurieren Sie Nginx in Ubuntu 20.04 und Ubuntu 21.04

So installieren Sie Nginx auf Ubuntu

So installieren Sie Nginx unter Ubuntu 18.04 LTS