Vollständige Schritt-für-Schritt-Anleitung zum Installieren und Einrichten eines Nginx-Webservers auf einem Ubuntu 20.04-System
Nginx ist ein quelloffener und beliebter Reverse-Proxy-Webserver, der auf mehreren Plattformen verfügbar ist. Die Software wurde entwickelt von Igor Sysoev als Lösung für das C10K-Problem und wurde erstmals 2004 veröffentlicht. Das C10K-Problem ist das Problem der gleichzeitigen Handhabung von zehntausend Clients, was in den frühen 2000er Jahren nicht einfach war.
In diesem Tutorial sehen wir uns an, wie Nginx unter Ubuntu 20.04 LTS installiert und eingerichtet wird.
Voraussetzungen
Ein System mit installiertem Ubuntu 20.04 und a sudo
Nutzer. Darüber hinaus müssen Sie keinen anderen Webserver wie Apache auf Port 80 oder 443 ausführen.
Nginx installieren
Nginx ist im Ubuntu 20.04-Repository verfügbar und geeignet
Paketmanager kann verwendet werden, um es zu installieren. Um Nginx zu installieren, öffnen Sie das Terminal mit Strg+Alt+T
und Renn:
sudo apt aktualisieren && sudo apt installieren nginx
Die Installation wird bald abgeschlossen und der Nginx-Daemon wird automatisch im Hintergrund gestartet. Um den Status von Nginx zu überprüfen, führen Sie Folgendes aus:
sudo systemctl status nginx
Nachdem Sie den obigen Befehl ausgeführt haben, sollten Sie den Nginx-Status erhalten als aktiv (laufend)
in grün wie unten zu sehen.
Konfigurieren der Ubuntu-Firewall (UFW)
Standardmäßig sind die ausgehenden Ports HTTP (80) und HTTPS (443) unter Ubuntu 20.04 geschlossen. Außerdem ist der Standard-Firewall-Daemon ufw
ist deaktiviert, da alle Ports geschlossen sind.
Um von anderen Systemen auf den Nginx-Server zugreifen zu können, müssen Sie daher die ufw
und richte es richtig ein, um Verkehr auf Port zuzulassen 80
und 443
. Bevor Sie aktivieren ufw
, wissen Sie, dass Sie beim Einrichten von Nginx auf einem Remote-Server zuerst die ufw
Regeln zu erlauben ssh
indem du läufst:
sudo ufw erlauben ssh
Der obige Befehl ermöglicht die ssh
Zugriff auf den Remote-Server, ohne dies zuzulassen ssh
Sie werden vom Remote-Server ausgesperrt.
Nach der Aktivierung ssh
Zugriff, können Sie die ufw
Firewall-Daemon, indem Sie Folgendes ausführen:
sudo ufw aktivieren
Jetzt müssen Sie die Firewall-Regeln ändern, um HTTP- und HTTPS-Ports zuzulassen, damit Nginx den Webverkehr bedienen kann. Um die Regeln zu ändern, führen Sie Folgendes aus:
sudo ufw erlauben 'Nginx Full'
Nginx voll
lässt sowohl HTTP- als auch HTTPS-Ports für eingehenden und ausgehenden Datenverkehr von allen IP-Adressen zu.
Überprüfen Sie danach, ob die Regeln richtig hinzugefügt wurden ufw
Firewall, indem Sie den Befehl ausführen:
sudo ufw-Status
Der obige Befehl gibt die Regeln aus, die wir hinzugefügt haben ufw
Firewall-Daemon.
Verbindung zum Nginx-Server herstellen
Jetzt haben wir Nginx installiert und konfiguriert ufw
Um eingehenden HTTP- und HTTPS-Webverkehr zuzulassen, sollten Sie über die IP-Adresse des Servers auf den Nginx-Server zugreifen können.
Wenn Sie die IP-Adresse des Servers nicht kennen, verwenden Sie den folgenden Befehl, um sie einfach abzurufen.
IP-Adresse zeigen eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Sobald Sie die IP-Adresse haben, fügen Sie sie in Ihren Browser ein und drücken Sie die Eingabetaste.
//Ihre-Server-IP
Wenn alles richtig konfiguriert wurde, sollten Sie die Webseite „Willkommen bei nginx!“ sehen können.
Nginx-Dateien und -Verzeichnisse
Jetzt haben wir Nginx auf Ihrem Server installiert und ausgeführt. Lassen Sie uns einen Blick auf einige der wichtigen Nginx-Dateien und -Verzeichnisse werfen, die Sie verwenden müssen, um Ihre Website/Web-App zu konfigurieren.
Inhalt des Webservers
Sie können einen beliebigen Speicherort als Stammverzeichnis für Ihren Serverblock konfigurieren. Das Standard-HTML von Nginx ist direkt /var/www/html
, dort befindet sich die „Willkommensseite“, die wir zuvor aufgerufen haben.
Andere Speicherorte, die normalerweise als Stammverzeichnis für Domänen verwendet werden, sind:
/Heimat//
/var/www/html/
/opt/
Nginx-Konfigurationsdateien
Alle Nginx-Konfigurationsdateien befinden sich in /etc/nginx
Verzeichnis. Sehen wir uns einige der wichtigen Dateien an, die wir zum Einrichten einer Basisdomäne benötigen.
/etc/nginx/nginx.conf
: Diese Datei enthält die gesamte Konfiguration, die zum Ausführen von Nginx erforderlich ist./etc/nginx/sites-verfügbar/
: Dieses Verzeichnis enthält die gesamte Serverblockkonfiguration von Domänen, ist jedoch derzeit nicht aktiviert/bereitgestellt und daher für Clients nicht zugänglich./etc/nginx/sites-enabled/
: Dieses Verzeichnis enthält derzeit aktive/aktivierte Domänen, auf die Clients zugreifen können. Um eine Domain zu aktivieren, müssen wir die Domain-Konfigurationsdatei vonSites-verfügbar
zumSites-aktiviert
Verzeichnis./etc/nginx/schnipsel
/: In diesem Verzeichnis können wir potenziell wiederverwendbare Konfigurationssegmente speichern. Es spart viel Zeit in der Produktionsumgebung, da es Segmente/Blöcke der Konfiguration wiederverwendbar machen kann.
Serverprotokolle
Nginx protokolliert die Ereignisse/Aktivitäten und speichert sie in Protokolldateien im /var/log/nginx
Verzeichnis. Die Nginx protokolliert Aktivitäten in diesen Dateien:
/var/log/nginx/access.log
: Diese Datei protokolliert die Clients, die auf den Nginx-Server zugegriffen haben. Zu den Details gehören die IP-Adresse des Clients, Uhrzeit und Datum, der für den Zugriff auf den Server verwendete Browser und das Betriebssystem./var/log/nginx/error.log
: Diese Datei protokolliert die Fehler, die vom Nginx-Server während der Ausführung aufgetreten sind.
In diesem Abschnitt haben wir uns also kurz einige wichtige Nginx-Dateien und -Verzeichnisse angesehen, die für den Anfang ausreichen.
Einrichten von Serverblöcken
Nachdem wir nun einige grundlegende Kenntnisse über Nginx-Dateien und -Server haben, können wir unseren eigenen Serverblock einrichten. Serverblöcke ähneln virtuellen Apache-Hosts.
Wir werden uns ansehen, wie man einen Serverblock erstellt und die Verwendung demonstriert beispiel.com
als Domäne im Erstellungsprozess.
💡 Ersetzen beispiel.com
mit Ihrem Domainnamen.
Bevor wir mit der Konfiguration von Serverblöcken beginnen, müssen wir ein Verzeichnis erstellen, das als Stammverzeichnis für Website-Inhalte dient. Lass uns erschaffen /var/www/example.com/html
Verzeichnis für die Domain mit mkdir
Befehl.
sudo mkdir -p /var/www/example.com/html
Der -P
Option erstellt alle benötigten übergeordneten Verzeichnisse. Das heißt, es wird erstellt beispiel.com
ein übergeordnetes Verzeichnis zu html
wenn es nicht existiert.
Ändern Sie den Besitzer des Verzeichnisses mit dem $USER
Umgebungsvariable:
sudo chown -R $USER:$USER /var/www/example.com/html
Erstellen Sie als Nächstes ein einfaches index.html
Datei, auf die zugegriffen wird, wenn Sie die zu konfigurierende Domäne besuchen. Dies dient nur zu Erläuterungszwecken.
nano /var/www/example.com/html/index.html
Fügen Sie den folgenden Inhalt in die Datei ein, die wir gerade auf dem Server erstellt haben.
Willkommen bei example.com! Jo! Die example.com ist zugänglich!
Drücken Sie Strg+O
schreiben und speichern index.html
Datei und drücken Sie dann Strg+x
beenden Nano
Editor.
Jetzt können wir endlich einen Serverblock erstellen, damit Nginx die index.html
wenn ein Benutzer zu . geht beispiel.com
. Um einen Serverblock zu erstellen, müssen wir eine Konfigurationsdatei namens . erstellen beispiel.com
in Sites-verfügbar
Verzeichnis. Dazu verwenden wir nano und führen:
sudo nano /etc/nginx/sites-available/example.com
Geben Sie dann die folgende Konfiguration ein oder kopieren Sie sie und fügen Sie sie ein. Dann drücken Strg+O
und geben Sie ein, um zu schreiben und zu speichern. Drücken Sie auf ähnliche Weise Strg+x
um den Nano-Editor zu schließen.
Server { hören 80; zuhören [::]:80; Servername example.com www.example.com; root /var/www/example-domain.com/html; index.html; Speicherort / { try_files $uri $uri/ =404; } }
Die obige Konfiguration ähnelt der Standard-Serverblockkonfiguration, wir haben sie geändert Wurzel
Anweisung, auf unser neues Root-Verzeichnis zu verweisen, und änderte die Servername
zu unserem Domainnamen. Während Lage{}
-Anweisung dient als Fehlerabfang-Anweisung, wenn Dateien nicht gefunden werden, und zeigt dem Client den Fehler 404 an.
Als nächstes können wir unseren Serverblock aktivieren, damit Nginx dienen wird beispiel.com
Webseiten. Um unseren Serverblock zu aktivieren, müssen wir einen Symlink von . erstellen beispiel.com
Datei von Sites-verfügbar
zu Sites-aktiviert
Verzeichnis. Führen Sie dazu Folgendes aus:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
Ein Link wird erstellt in Site-fähig
Verzeichnis und jetzt beispiel.com
sollte aktiviert sein. Jetzt haben wir auf unserem Nginx-Server zwei Serverblöcke aktiviert, die auf Anfragen basierend auf reagieren Hör mal zu
und Servername
Anweisungen gespeichert in beispiel.com
Konfiguration des Serverblocks.
Um zu überprüfen, ob alle Konfigurationsdateien korrekt sind und kein Syntaxfehler vorliegt, führen Sie Folgendes aus:
sudo nginx -t
Starten Sie nun Nginx neu, um die Änderungen zu übernehmen, indem Sie den folgenden Befehl ausführen:
sudo systemctl Neustart nginx
Nginx beginnt jetzt mit der Bereitstellung Ihres Serverblocks, Sie können zu gehen //Ihr-Domain-Name
und sehen Sie Ihre Webseite live.
Notiz: Damit der obige Abschnitt funktioniert, müssen Sie Ihre eigene Domain einrichten und ersetzen beispiel.com
mit Ihrem eigenen Domainnamen. Außerdem müssen Sie DNS für Ihre Domäne so konfigurieren, dass sie auf die IP-Adresse Ihres Nginx-Servers verweist.
Abschließend haben wir uns angeschaut, wie man Nginx installiert, konfiguriert ufw
um den Fernzugriff auf den Nginx-Server zu ermöglichen, mit Nginx aus der Ferne verbunden, machte sich mit einigen grundlegenden Nginx-Dateien und -Verzeichnissen vertraut und lernte, wie man einen Serverblock einrichtet.
Um mehr über Nginx zu erfahren und zu erfahren, sollten Sie sich das Nginx-Wiki ansehen.