Wie man Nginx unter Debian 10 installiert

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:

  1. sudo apt update

Dann installieren Sie das Paket nginx:

  1. sudo apt install 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:

  1. sudo ufw app list

Sie sollten eine Auflistung der Anwendungsprofile erhalten:

Output
Available 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 Port 443 (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:

  1. sudo ufw allow 'Nginx HTTP'

Sie können die Änderung überprüfen, indem Sie eingeben:

  1. sudo ufw status

Was im Output erscheint, sind die erlaubten HTTP-Verkehr:

Output
Status: 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:

  1. systemctl status nginx
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:

  1. ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

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:

  1. sudo systemctl stop nginx

Um den Webserver zu starten, wenn er gestoppt ist, geben Sie ein:

  1. sudo systemctl start nginx

Um den Dienst erneut zu stoppen und zu starten, geben Sie ein:

  1. sudo systemctl restart nginx

Wenn Sie Konfigurationsänderungen vornehmen, kann Nginx oft neu geladen werden, ohne Verbindungen zu trennen. Geben Sie dazu ein:

  1. sudo systemctl reload nginx

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:

  1. sudo systemctl disable nginx

Um den Dienst wieder für den Start beim Booten zu aktivieren, können Sie Folgendes eingeben:

  1. sudo systemctl enable nginx

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:

  1. sudo mkdir -p /var/www/your_domain/html

Weisen Sie anschließend dem Verzeichnis mit der Umgebungsvariable $USER die Eigentümerschaft zu, die auf Ihren aktuellen Systembenutzer verweisen sollte:

  1. sudo chown -R $USER:$USER /var/www/your_domain/html

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:

  1. sudo chmod -R 755 /var/www/your_domain

Erstellen Sie als nächstes eine Beispieldatei index.html mit nano oder Ihrem bevorzugten Texteditor:

  1. nano /var/www/your_domain/html/index.html

Fügen Sie folgendes Beispieldokument ein:

/var/www/your_domain/html/index.html
<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:

  1. sudo nano /etc/nginx/sites-available/your_domain

Fügen Sie den folgenden Konfigurationsblock hinzu, der dem Standard ähnelt, aber für Ihr neues Verzeichnis und Ihre Domänenname aktualisiert ist:

/etc/nginx/sites-available/your_domain
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:

  1. sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

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ür Ihr_Domänenname und www.Ihr_Domänenname antworten.
  • Standard: Wird auf alle Anfragen auf Port 80 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:

  1. sudo nano /etc/nginx/nginx.conf

Finden Sie die Direktive server_names_hash_bucket_size und entfernen Sie das #-Symbol, um die Zeile zu aktivieren:

/etc/nginx/nginx.conf
...
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:

  1. sudo nginx -t

Wenn es keine Probleme gibt, lautet die Ausgabe wie folgt:

Output
nginx: 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:

  1. sudo systemctl restart nginx

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 Verzeichnis sites-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 Verzeichnis sites-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