Einführung
Nginx ist ein kostenloses und Open-Source-Webserver, der verwendet wird, um Websites und Anwendungen aller Größen zu hosten. Die Software ist bekannt für ihren geringen Speicherbedarf, hohe Skalierbarkeit und ihre modulare, ereignisgesteuerte Architektur, die eine sichere, vorhersehbare Leistung bieten kann. Nginx fungiert nicht nur als Webserver, sondern auch als Lastenausgleicher, HTTP-Cache und Reverse-Proxy.
In diesem Leitfaden installieren Sie Nginx auf Ihrem Debian 10 Server.
Voraussetzungen
Bevor Sie diesen Leitfaden beginnen, sollten Sie einen regulären, nicht-root-Benutzer mit sudo-Berechtigungen auf Ihrem Server konfiguriert haben. Sie sollten auch eine aktive Firewall haben. Sie können lernen, wie Sie dies einrichten, indem Sie unserem Einrichtungshandbuch für Debian 10 folgen.
Schritt 1 – Installation von Nginx
Nginx ist in den Standard-Software-Repositories von Debian verfügbar, sodass es möglich ist, es über herkömmliche Paketverwaltungstools zu installieren.
Aktualisieren Sie zunächst Ihren lokalen Paketindex, um die neuesten Upstream-Änderungen zu reflektieren:
Dann installieren Sie das Paket nginx
:
Bestätigen Sie die Installation, indem Sie Y
eingeben und dann Enter
drücken, um fortzufahren. apt
wird dann Nginx und alle erforderlichen Abhängigkeiten auf Ihrem Server installieren.
Schritt 2 – Anpassen der Firewall
Bevor Sie Nginx testen, ist es notwendig, die Firewall-Einstellungen zu ändern, um den externen Zugriff auf die Standard-Webports zu ermöglichen. Vorausgesetzt, Sie haben den Anweisungen in den Voraussetzungen gefolgt, sollte eine UFW-Firewall konfiguriert sein, um den Zugriff auf Ihren Server einzuschränken.
Während der Installation registriert sich Nginx bei UFW, um einige Anwendungsprofile bereitzustellen, die verwendet werden können, um den Zugriff auf Nginx durch die Firewall zu aktivieren oder zu deaktivieren.
Listen Sie die ufw
-Anwendungsprofile auf, indem Sie eingeben:
Sie sollten eine Auflistung der Anwendungsprofile erhalten:
OutputAvailable applications:
...
Nginx Full
Nginx HTTP
Nginx HTTPS
...
Wie Sie sehen können, gibt es drei Profile für Nginx:
- Nginx Full: Dieses Profil öffnet sowohl den Port
80
(normaler, unverschlüsselter Webverkehr) als auch den Port443
(TLS/SSL-verschlüsselter Verkehr) - Nginx HTTP: Dieses Profil öffnet nur den Port
80
(normaler, unverschlüsselter Webverkehr) - Nginx HTTPS: Dieses Profil öffnet nur den Port
443
(TLS/SSL-verschlüsselter Verkehr)
Es wird empfohlen, das restriktivste Profil zu aktivieren, das den von Ihnen konfigurierten Verkehr noch zulässt. Da Sie in dieser Anleitung noch keine TLS/SSL für Ihren Server konfiguriert haben, müssen Sie nur den Verkehr für HTTP auf Port 80
zulassen.
Sie können dies aktivieren, indem Sie eingeben:
Sie können die Änderung überprüfen, indem Sie eingeben:
Was im Output erscheint, sind die erlaubten HTTP-Verkehr:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Schritt 3 – Überprüfen Ihres Webservers
Am Ende des Installationsprozesses startet Debian 10 Nginx. Der Webserver sollte bereits aktiv und ausgeführt werden.
Sie können mit dem systemd
-Init-System überprüfen, ob der Dienst läuft, indem Sie eingeben:
Output● 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 Tue 2022-06-28 18:42:58 UTC; 49s ago
Docs: man:nginx(8)
Main PID: 2729 (nginx)
Tasks: 2 (limit: 1167)
Memory: 7.2M
CGroup: /system.slice/nginx.service
├─2729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2730 nginx: worker process
Dieser Output zeigt, dass der Dienst erfolgreich gestartet wurde. Die beste Möglichkeit, dies zu testen, besteht jedoch darin, tatsächlich eine Seite von Nginx anzufordern.
Sie können die Standard-Nginx-Startseite aufrufen, um zu bestätigen, dass die Software ordnungsgemäß läuft, indem Sie die IP-Adresse Ihres Servers aufrufen. Wenn Sie die IP-Adresse Ihres Servers nicht kennen, können Sie dies an der Befehlszeile Ihres Servers eingeben:
Sie erhalten einige Zeilen zurück. Sie können jede in Ihrem Webbrowser ausprobieren, um zu sehen, ob sie funktionieren.
Wenn Sie die IP-Adresse Ihres Servers haben, geben Sie diese in die Adressleiste Ihres Browsers ein:
http://your_server_ip
Die Standard-Nginx-Startseite sollte in Ihrem Webbrowser angezeigt werden:
Diese Seite wird mit Nginx geliefert, um Ihnen zu zeigen, dass der Server korrekt läuft.
Schritt 4 – Verwalten des Nginx-Prozesses
Jetzt, da Ihr Webserver läuft, können Sie einige grundlegende Verwaltungsbefehle überprüfen.
Um Ihren Webserver zu stoppen, geben Sie ein:
Um den Webserver zu starten, wenn er gestoppt ist, geben Sie ein:
Um den Dienst erneut zu stoppen und zu starten, geben Sie ein:
Wenn Sie Konfigurationsänderungen vornehmen, kann Nginx oft neu geladen werden, ohne Verbindungen zu trennen. Geben Sie dazu ein:
Standardmäßig ist Nginx so konfiguriert, dass es automatisch gestartet wird, wenn der Server hochfährt. Wenn dies nicht gewünscht ist, können Sie dieses Verhalten durch Eingabe von deaktivieren:
Um den Dienst wieder für den Start beim Booten zu aktivieren, können Sie Folgendes eingeben:
Schritt 5 – Einrichten von Server-Blöcken (optional)
Beim Einsatz des Nginx-Web-Servers können Serverblöcke (ähnlich wie virtuelle Hosts in Apache) verwendet werden, um Konfigurationsdetails zu kapseln und mehr als eine Domain auf einem einzigen Server zu hosten. In den folgenden Befehlen ersetzen Sie your_domain
durch Ihren eigenen Domainnamen. Um mehr über die Einrichtung eines Domainnamens mit DigitalOcean zu erfahren, sehen Sie sich unsere Einführung in DigitalOcean DNS an.
Nginx unter Debian 10 hat standardmäßig einen Serverblock aktiviert, der so konfiguriert ist, dass er Dokumente aus einem Verzeichnis unter /var/www/html
bereitstellt. Dies funktioniert gut für eine einzelne Website, kann aber unübersichtlich werden, wenn Sie mehrere Websites hosten. Anstatt /var/www/html
zu ändern, erstellen Sie eine Verzeichnisstruktur innerhalb von /var/www
für die your_domain
-Website und belassen Sie /var/www/html
als Standardverzeichnis, das bereitgestellt wird, wenn eine Clientanforderung keiner anderen Website entspricht.
Erstellen Sie das Verzeichnis für your_domain
wie folgt und verwenden Sie die -p
-Flagge, um alle erforderlichen übergeordneten Verzeichnisse zu erstellen:
Weisen Sie anschließend dem Verzeichnis mit der Umgebungsvariable $USER
die Eigentümerschaft zu, die auf Ihren aktuellen Systembenutzer verweisen sollte:
Die Berechtigungen Ihres Webstamms sollten korrekt sein, wenn Sie Ihren umask
-Wert nicht geändert haben, aber Sie können sicherstellen, indem Sie Folgendes eingeben:
Erstellen Sie als nächstes eine Beispieldatei index.html
mit nano
oder Ihrem bevorzugten Texteditor:
Fügen Sie folgendes Beispieldokument ein:
<html>
<head>
<title>Welcome to your_domain</title>
</head>
<body>
<h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>
Speichern und schließen Sie die Datei, wenn Sie fertig sind. In nano
können Sie dies tun, indem Sie CTRL + X
drücken, dann Y
und dann ENTER
.
Um diesen Inhalt von Nginx bereitzustellen, müssen Sie einen Serverblock mit den richtigen Anweisungen erstellen, die auf Ihr benutzerdefiniertes Web-Stammverzeichnis zeigen. Anstatt die Standardkonfigurationsdatei direkt zu ändern, erstellen Sie eine neue unter /etc/nginx/sites-available/Ihr_Domänenname
:
Fügen Sie den folgenden Konfigurationsblock hinzu, der dem Standard ähnelt, aber für Ihr neues Verzeichnis und Ihre Domänenname aktualisiert ist:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
Beachten Sie die aktualisierte root
-Konfiguration für Ihr neues Verzeichnis und den server_name
für Ihren Domänennamen. Denken Sie daran, Ihr_Domänenname
durch Ihren tatsächlichen Domänennamen zu ersetzen.
Als Nächstes aktivieren Sie diesen Serverblock, indem Sie einen symbolischen Link zu Ihrer benutzerdefinierten Konfigurationsdatei im Verzeichnis sites-enabled
erstellen, das Nginx beim Start liest:
Ihr Server hat jetzt zwei aktivierte Serverblöcke, die konfiguriert sind, um auf Anfragen basierend auf ihren listen
– und server_name
-Anweisungen zu antworten (Sie können mehr darüber lesen, wie Nginx diese Anweisungen verarbeitet hier):
Ihr_Domänenname
: Wird auf Anfragen fürIhr_Domänenname
undwww.Ihr_Domänenname
antworten.Standard
: Wird auf alle Anfragen auf Port80
antworten, die nicht mit den anderen beiden Blöcken übereinstimmen.
Um ein mögliches Speicherproblem mit Hash-Buckets zu vermeiden, das durch das Hinzufügen zusätzlicher Servernamen zu Ihrer Konfiguration entstehen kann, ist es erforderlich, einen einzigen Wert in der Datei /etc/nginx/nginx.conf
anzupassen. Öffnen Sie die Datei:
Finden Sie die Direktive server_names_hash_bucket_size
und entfernen Sie das #
-Symbol, um die Zeile zu aktivieren:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Testen Sie als nächstes, um sicherzustellen, dass es keine Syntaxfehler in Ihren Nginx-Dateien gibt:
Wenn es keine Probleme gibt, lautet die Ausgabe wie folgt:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Sobald Ihr Konfigurationstest erfolgreich ist, starten Sie Nginx neu, um Ihre Änderungen zu aktivieren:
Nginx sollte nun Ihren Domainnamen bedienen. Sie können dies testen, indem Sie zu http://your_domain
navigieren. Der benutzerdefinierte HTML-Code, den Sie im Ordner /var/www/your_domain/html/index.html
erstellt haben, sollte hier gerendert werden:
Schritt 6 – Vertrautmachen mit wichtigen Nginx-Dateien und -Verzeichnissen
Jetzt, da Sie wissen, wie Sie den Nginx-Dienst selbst verwalten können, können Sie sich einige wichtige Verzeichnisse und Dateien näher ansehen.
Inhalt
/var/www/html
: Der tatsächliche Webinhalt, der standardmäßig nur aus der Standard-Nginx-Seite besteht, die Sie zuvor gesehen haben, wird aus dem Verzeichnis/var/www/html
bereitgestellt. Dies kann durch Ändern von Nginx-Konfigurationsdateien geändert werden.
Serverkonfiguration
/etc/nginx
: Das Nginx-Konfigurationsverzeichnis. Alle Nginx-Konfigurationsdateien befinden sich hier./etc/nginx/nginx.conf
: Die Haupt-Nginx-Konfigurationsdatei. Diese kann geändert werden, um Änderungen an der globalen Nginx-Konfiguration vorzunehmen./etc/nginx/sites-available/
: Das Verzeichnis, in dem serverbezogene Serverblöcke gespeichert werden können. Nginx verwendet die in diesem Verzeichnis gefundenen Konfigurationsdateien nicht, es sei denn, sie sind mit dem Verzeichnissites-enabled
verknüpft. Typischerweise wird die gesamte Serverblockkonfiguration in diesem Verzeichnis durchgeführt und dann durch Verknüpfen mit dem anderen Verzeichnis aktiviert./etc/nginx/sites-enabled/
: Das Verzeichnis, in dem aktivierte serverbezogene Serverblöcke gespeichert sind. Typischerweise werden diese durch Verknüpfen mit Konfigurationsdateien im Verzeichnissites-available
erstellt./etc/nginx/snippets
: Dieses Verzeichnis enthält Konfigurationsfragmente, die an anderer Stelle in der Nginx-Konfiguration eingebunden werden können. Potenziell wiederholbare Konfigurationssegmente eignen sich gut zur Umstrukturierung in Schnipsel.
Serverprotokolle
/var/log/nginx/access.log
: Jede Anforderung an Ihren Webserver wird in dieser Protokolldatei aufgezeichnet, es sei denn, Nginx ist anderweitig konfiguriert./var/log/nginx/error.log
: Alle Nginx-Fehler werden in diesem Protokoll erfasst.
Abschluss
Jetzt, da Sie Ihren Webserver installiert haben, haben Sie viele Optionen für den Typ des Inhalts, den Sie bereitstellen können, und die Technologien, die Sie verwenden können, um Ihren Benutzern ein umfassenderes Erlebnis zu bieten.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-10