Nginx, ausgesprochen „Engine x“, ist ein kostenloser, hochleistungsfähiger Open-Source-HTTP- und Reverse-Proxy-Server, der für die Verarbeitung der Last einiger der größten Websites im Internet verantwortlich ist.
Nginx kann als eigenständiger Webserver und als Reverse-Proxy für Apache und andere Webserver verwendet werden.
Im Vergleich zu Apache kann Nginx eine viel größere Anzahl gleichzeitiger Verbindungen verarbeiten und hat einen geringeren Speicherbedarf pro Verbindung.
In diesem Tutorial werden die Schritte beschrieben, die zum Installieren von Nginx auf einem Ubuntu 18.04-Computer erforderlich sind.
Voraussetzungen #
Bevor Sie mit dem Tutorial beginnen, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind und dass auf Port 80
kein Apache oder ein anderer Webserver ausgeführt wird oder 443
.
Installation von Nginx #
Nginx-Pakete sind in den standardmäßigen Ubuntu-Repositories verfügbar. Die Installation ist ziemlich einfach.
Wir beginnen mit der Aktualisierung der Paketliste und installieren dann Nginx:
sudo apt update
sudo apt install nginx
Sobald die Installation abgeschlossen ist, wird der Nginx-Dienst automatisch gestartet. Sie können den Status des Dienstes mit dem folgenden Befehl überprüfen:
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 Sun 2018-04-29 06:43:26 UTC; 8s ago
Docs: man:nginx(8)
Process: 3091 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 3080 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 3095 (nginx)
Tasks: 2 (limit: 507)
CGroup: /system.slice/nginx.service
├─3095 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─3097 nginx: worker process
Konfiguriere Firewall #
Angenommen, Sie verwenden UFW
Um Ihre Firewall zu verwalten, müssen Sie HTTP (80
) und HTTPS (443
) Häfen. Sie können 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 Ihnen wird die Standard-Nginx-Zielseite angezeigt, wie im Bild unten gezeigt:
Verwalten des Nginx-Dienstes #
Sie können den Nginx-Dienst genauso verwalten wie jeden anderen systemd-Dienst.
Um den Nginx-Dienst zu stoppen, führen Sie Folgendes aus:
sudo systemctl stop nginx
Geben Sie zum erneuten Starten Folgendes ein:
sudo systemctl start nginx
So starten Sie den Nginx-Dienst neu:
sudo systemctl restart nginx
Laden Sie den Nginx-Dienst neu, nachdem Sie einige Konfigurationsänderungen vorgenommen haben:
sudo systemctl reload nginx
Standardmäßig wird der Nginx-Dienst beim Booten gestartet. Wenn Sie den Nginx-Dienst deaktivieren möchten, um beim Booten zu starten:
sudo systemctl disable nginx
Und um es wieder zu aktivieren:
sudo systemctl enable nginx
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) von der Konfigurationsdatei sites in einem
sites-available
erstellen Verzeichnis zusites-enabled
Verzeichnis. - Es wird empfohlen, die Standard-Namenskonvention zu befolgen, beispielsweise wenn Ihr Domänenname
mydomain.com
ist 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>