Nginx, ausgesprochen „Engine x“, ist ein Open-Source-Hochleistungs-HTTP- und Reverse-Proxy-Server, der für die Verarbeitung der Last einiger der größten Websites im Internet verantwortlich ist. Es kann als eigenständiger Webserver, Load Balancer, Inhaltscache und Reverse-Proxy für HTTP- und Nicht-HTTP-Server verwendet werden.
Im Vergleich zu Apache kann Nginx eine viel größere Anzahl gleichzeitiger Verbindungen verarbeiten und hat einen geringeren Speicherbedarf pro Verbindung.
Dieses Tutorial beschreibt die Installation und Verwaltung von Nginx unter Ubuntu 20.04.
Voraussetzungen #
Bevor Sie fortfahren, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind und dass Apache oder andere Prozesse nicht auf Port 80 oder 443 ausgeführt werden.
Installation von Nginx #
Nginx ist in den Standard-Ubuntu-Repositories verfügbar. Um es zu installieren, führen Sie die folgenden Befehle aus:
sudo apt update
sudo apt install nginx
Sobald die Installation abgeschlossen ist, wird der Nginx-Dienst automatisch gestartet. Sie können dies überprüfen, indem Sie Folgendes ausführen:
sudo systemctl status nginx
Die Ausgabe sieht in etwa so aus:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-05-02 20:25:43 UTC; 13s ago
...
Das ist es. Nginx wurde auf Ihrem Ubuntu-Rechner installiert. Sie können den Nginx-Dienst genauso verwalten wie jede andere systemd-Einheit.
Konfiguriere Firewall #
Nachdem Sie Nginx auf Ihrem Server installiert und ausgeführt haben, müssen Sie sicherstellen, dass Ihre Firewall so konfiguriert ist, dass sie Datenverkehr über HTTP zulässt (80
) und HTTPS (443
) Häfen. Angenommen, Sie verwenden UFW
, können Sie dies tun, indem Sie das Profil „Nginx Full“ aktivieren, das Regeln für beide Ports enthält:
sudo ufw allow 'Nginx Full'
Geben Sie Folgendes ein, um den Status zu überprüfen:
sudo ufw status
Die Ausgabe sieht in etwa so aus:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Nginx Full ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Testen Sie die Installation #
Um Ihre neue Nginx-Installation zu testen, öffnen Sie http://YOUR_IP
in Ihrem Browser Ihrer Wahl, und Sie sollten die Standard-Nginx-Zielseite sehen, wie im Bild unten gezeigt:
Struktur und Best Practices der Nginx-Konfigurationsdatei #
- Alle Nginx-Konfigurationsdateien befinden sich in
/etc/nginx
Verzeichnis. - Die Hauptkonfigurationsdatei von Nginx ist
/etc/nginx/nginx.conf
. - Um die Wartung der Nginx-Konfiguration zu vereinfachen, wird empfohlen, für jede Domäne eine separate Konfigurationsdatei zu erstellen. Sie können so viele Serverblockdateien haben, wie Sie benötigen.
- Nginx-Serverblockdateien werden in
/etc/nginx/sites-available
gespeichert Verzeichnis. Die in diesem Verzeichnis gefundenen Konfigurationsdateien werden von Nginx nicht verwendet, es sei denn, sie sind mit/etc/nginx/sites-enabled
verknüpft Verzeichnis. - Um einen Serverblock zu aktivieren, müssen Sie einen Symlink (einen Zeiger) aus der Konfigurationsdatei sites in einem
sites-available
erstellen Verzeichnis zusites-enabled
Verzeichnis. - Es wird empfohlen, sich an die Standard-Namenskonvention zu halten. Beispiel:Ihr Domänenname ist
mydomain.com
dann sollte Ihre Konfigurationsdatei/etc/nginx/sites-available/mydomain.com.conf
heißen - Der
/etc/nginx/snippets
Das Verzeichnis enthält Konfigurationsausschnitte, die in die Server-Blockdateien aufgenommen werden können. Wenn Sie wiederholbare Konfigurationssegmente verwenden, können Sie diese Segmente in Snippets umgestalten und die Snippet-Datei in die Serverblöcke einfügen. - Nginx-Protokolldateien (
access.log
underror.log
) befinden sich im/var/log/nginx
Verzeichnis. Es wird empfohlen, einen anderenaccess
zu haben underror
Protokolldateien für jeden Serverblock. - Sie können das Root-Verzeichnis Ihrer Domänendokumente auf einen beliebigen Speicherort festlegen. Die häufigsten Speicherorte für Webroot sind:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>