So installieren Sie Nginx unter Ubuntu 20.04 LTS

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 von Sites-verfügbar zum Sites-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.