Nginx ist ein leistungsstarker Open-Source-HTTP- und Reverse-Proxy-Server, der einige der größten Websites im Internet betreibt.
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.
Dieses Tutorial beschreibt die Schritte zum Installieren und Verwalten von Nginx auf einem Debian-Rechner.
Voraussetzungen #
Bevor Sie mit dem Tutorial beginnen, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.
Installieren Sie Nginx #
Die Installation ist ziemlich einfach. Führen Sie die folgenden Schritte aus, um Nginx auf Ihrem Debian-System zu installieren:
-
Aktualisieren Sie den Paketindex:
sudo apt update
-
Installieren Sie das Nginx-Paket:
sudo apt install nginx
-
Der Nginx-Dienst wird automatisch gestartet, nachdem der Installationsvorgang abgeschlossen ist. Sie können dies überprüfen, indem Sie den folgenden
curl
ausführen Befehl:curl -I 127.0.0.1
HTTP/1.1 200 OK Server: nginx/1.10.3 Date: Mon, 27 Aug 2018 22:29:02 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Mon, 27 Aug 2018 22:27:54 GMT Connection: keep-alive ETag: "5b847aea-264" Accept-Ranges: bytes
Passen Sie die Firewall # an
Wenn Sie iptables verwenden, um Verbindungen zu Ihrem System zu filtern, müssen Sie HTTP (80
) und HTTPS (443
) Ports.
Öffnen Sie die erforderlichen Ports, indem Sie den folgenden Befehl ausführen:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Verwalten Sie den Nginx-Dienst mit systemctl #
Sie können das systemctl
verwenden Befehl zum Verwalten des Nginx-Dienstes, genau wie jede andere systemd-Einheit.
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
Deaktivieren Sie den Nginx-Dienst, 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 #
- Nginx-Konfigurationsdateien werden in
/etc/nginx
gespeichert Verzeichnis. - Die Hauptkonfigurationsdatei von Nginx ist
/etc/nginx/nginx.conf
. - Serverblock-(vhost)-Konfigurationsdateien 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. - Das Aktivieren von Serverblöcken erfolgt durch Erstellen eines Symlinks (eines Zeigers) aus der Konfigurationsdatei sites in einem
sites-available
Verzeichnis zusites-enabled
Verzeichnis. - Um besser wartbaren Code zu schreiben, ist es eine gute Idee, einer Standard-Namenskonvention zu folgen. Zum Beispiel, wenn Ihr Domainname
mydomain.com
ist dann sollte die 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>