One place for hosting & domains

      So installieren Sie Nginx unter Ubuntu 20.04


      Einführung

      Nginx ist einer der beliebtesten Webserver der Welt und verantwortlich für das Hosting einiger der größten und datenverkehrsreichsten Websites im Internet. Er ist eine leichtgewichtige Wahl, die als Webserver oder Reverse-Proxy verwendet werden kann.

      Dieser Leitfaden zeigt Ihnen, wie Sie Nginx auf Ihrem Ubuntu-20.04-Server installieren, die Firewall anpassen, den Nginx-Prozess verwalten und Serverblocks für das Hosting von mehreren Domänen von einem einzelnen Server aus einrichten.

      Voraussetzungen

      Bevor Sie mit diesem Leitfaden beginnen, sollten Sie auf Ihrem Server einen regulären non-root user mit sudo-Berechtigungen konfiguriert haben. In unserem Leitfaden zur Ersteinrichtung des Servers unter Ubuntu 20.04. erfahren Sie, wie Sie ein reguläres Benutzerkonto für einen solchen user konfigurieren.

      Wenn Sie über ein Konto verfügen, melden Sie sich zunächst als non-root user an.

      Schritt 1 – Installieren von Nginx

      Da Nginx in den Standard-Repositorys von Ubuntu verfügbar ist, kann es mithilfe des apt-Paketsystems aus diesen Repositorys installiert werden.

      Da es unsere erste Interaktion mit dem apt-Paketsystem in dieser Sitzung ist, aktualisieren wir unseren lokalen Paketindex, damit wir auf die neuesten Paketlisten zugreifen können. Danach können wir nginx installieren:

      • sudo apt update
      • sudo apt install nginx

      Nachdem das Verfahren akzeptiert wurde, installiert apt Nginx und alle erforderlichen Abhängigkeiten auf Ihren Server.

      Schritt 2 – Anpassen der Firewall

      Vor dem Testen von Nginx muss die Firewall-Software angepasst werden, um den Zugriff auf den Dienst zu ermöglichen. Nginx registriert sich bei der Installation als Dienst mit ufw, wodurch ein unkomplizierter Zugriff von Nginx ermöglicht wird.

      Listen Sie die Anwendungskonfigurationen auf, mit denen ufw arbeiten kann, indem Sie Folgendes eingeben:

      Sie sollten eine Auflistung der Anwendungsprofile erhalten:

      Output

      Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

      Wie in der Ausgabe angezeigt, gibt es drei Profile für Nginx:

      • Nginx Full: Dieses Profil öffnet sowohl Port 80 (normaler, unverschlüsselter Webverkehr) als auch Port 443 (mit TLS/SSL verschlüsselter Verkehr)
      • Nginx HTTP: Dieses Profil öffnet nur Port 80 (normaler, unverschlüsselter Verkehr)
      • Nginx HTTPS: Dieses Profil öffnet nur Port 443 (mit TLS/SSL verschlüsselter Datenverkehr)

      Es wird empfohlen, das restriktivste Profil zu aktivieren, das den von Ihnen konfigurierten Datenverkehr immer noch zulässt. Im Moment müssen wir nur den Datenverkehr auf Port 80 zulassen.

      Sie können dies aktivieren, indem Sie Folgendes eingeben:

      • sudo ufw allow 'Nginx HTTP'

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

      Die Ausgabe zeigt an, welcher HTTP-Datenverkehr zugelassen ist:

      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 – Testen Ihres Webservers

      Am Ende des Installationsprozesses startet Ubuntu 20.04 Nginx. Der Webserver sollte bereits ausgeführt werden.

      Sie können eine Überprüfung mit dem Init-System systemd durchführen, um sicherzustellen, dass der Dienst ausgeführt wird, indem Sie Folgendes 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 Fri 2020-04-20 16:08:19 UTC; 3 days ago Docs: man:nginx(8) Main PID: 2369 (nginx) Tasks: 2 (limit: 1153) Memory: 3.5M CGroup: /system.slice/nginx.service ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2380 nginx: worker process

      Wie diese Ausgabe bestätigt, wurde der Dienst erfolgreich gestartet. Der beste Weg, dies zu testen, besteht jedoch darin, eine Seite von Nginx anzufordern.

      Sie können auf die Standardstartseite von Nginx zugreifen, um zu bestätigen, dass die Software ordnungsgemäß ausgeführt wird, indem Sie zur IP-Adresse Ihres Servers navigieren. Wenn Sie die IP-Adresse Ihres Servers nicht kennen, können Sie sie mithilfe des Tools icanhazip.com finden. Mit diesem erhalten Sie Ihre IP-Adresse, wie sie von einem anderen Ort im Internet empfangen wurde:

      Wenn Sie über die IP-Adresse Ihres Servers verfügen, geben Sie sie in die Adressleiste Ihres Browsers ein:

      http://your_server_ip
      

      Sie sollten nun die Standardstartseite von Nginx erhalten:

      Nginx-Standardseite

      Wenn Sie auf dieser Seite sind, wird Ihr Server korrekt ausgeführt und steht zur Verwaltung bereit.

      Schritt 4 – Verwalten der Nginx-Prozesse

      Nachdem Ihr Webserver nun ausgeführt wird, werfen wir einen Blick auf einige grundlegende Verwaltungsbefehle.

      Um Ihren Webserver anzuhalten, geben Sie Folgendes ein:

      • sudo systemctl stop nginx

      Um den Webserver zu starten, wenn er angehalten wurde, geben Sie Folgendes ein:

      • sudo systemctl start nginx

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

      • sudo systemctl restart nginx

      Wenn Sie nur Konfigurationsänderungen vornehmen, kann Nginx oft neu laden, ohne Verbindungen abzubrechen. Dazu geben Sie Folgendes ein:

      • sudo systemctl reload nginx

      Standardmäßig ist Nginx so konfiguriert, dass es beim Booten des Servers automatisch startet. Wenn Sie dieses Verhalten nicht wünschen, können Sie es durch folgende Eingabe deaktivieren:

      • sudo systemctl disable nginx

      Geben Sie Folgendes ein, um den Start des Dienstes beim Booten wieder zu aktivieren:

      • sudo systemctl enable nginx

      Sie haben nun grundlegende Verwaltungsbefehle kennengelernt und können beginnen, die Website so zu konfigurieren, dass sie mehr als eine Domäne hosten kann.

      Schritt 5 – Einrichten von Serverblocks (empfohlen)

      Bei Verwendung des Nginx-Webservers können Serverblocks (ähnlich wie virtuelle Hosts in Apache) verwendet werden, um Konfigurationsdetails einzuschließen und mehr als eine Domäne auf einem einzigen Server zu hosten. Wir richten eine Domäne namens your_domain ein, aber Sie sollten diesen Namen durch Ihren eigenen Domänennamen ersetzen. Um mehr über das Einrichten eines Domänennamens mit DigitalOcean zu erfahren, lesen Sie bitte unsere Einführung zu DigitalOcean DNS.

      Auf Ubuntu 20.04 hat Nginx standardmäßig einen Serverblock aktiviert. Dieser ist so konfiguriert, dass er Dokumente aus einem Verzeichnis in /var/www/html bereitstellt. Das eignet sich gut für eine Site, kann aber umständlich werden, wenn Sie mehrere Sites hosten. Statt /var/www/html zu ändern, erstellen wir eine Verzeichnisstruktur innerhalb /var/www für unsere your_domain und lassen dabei /var/www/html als Standardverzeichnis, das bereitgestellt wird, wenn eine Client-Anfrage keine übereinstimmenden Sites ergibt.

      Erstellen Sie das Verzeichnis für your_domain wie folgt, wobei Sie das Flag -p nutzen, um alle erforderlichen übergeordneten Verzeichnisse zu erstellen:

      • sudo mkdir -p /var/www/your_domain/html

      Weisen Sie als Nächstes das Eigentum am Verzeichnis mit der $USER Umgebungsvariablen zu:

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

      Die Berechtigungen Ihrer Webroots sollten korrekt sein, wenn Sie Ihren umask-Wert, der die Standard-Dateiberechtigungen festlegt, nicht geändert haben. Um sicherzustellen, dass Ihre Berechtigungen korrekt sind und der Eigentümer die Dateien lesen, schreiben und ausführen kann, während Gruppen und anderen nur Lese- und Ausführungsberechtigungen erteilt werden, können Sie den folgenden Befehl eingeben:

      • sudo chmod -R 755 /var/www/your_domain

      Erstellen Sie als Nächstes eine index.html Beispielsseite durch die Verwendung von nano oder Ihrem bevorzugten Texteditor:

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

      Fügen Sie dann das folgende HTML-Beispiel hinzu:

      /var/www/your_domain/html/index.html

      <html>
          <head>
              <title>Welcome to your_domain!</title>
          </head>
          <body>
              <h1>Success!  The your_domain server block is working!</h1>
          </body>
      </html>
      

      Wenn Sie fertig sind, speichern und schließen Sie die Datei, indem Sie STRG und X und dann Y und ENTER eingeben.

      Sie müssen einen Serverblock mit den richtigen Anweisungen erstellen, damit Nginx diesen Inhalt bereitstellen kann. Anstatt die Standardkonfigurationsdatei direkt zu ändern, erstellen wir eine neue in /etc/nginx/sites-available/your_domain:

      • sudo nano /etc/nginx/sites-available/your_domain

      Fügen Sie den folgenden Konfigurationsblock ein, der dem Standard ähnlich ist, aber für unser neues Verzeichnis und den Domänennamen aktualisiert wurde:

      /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, dass wir die root-Konfiguration mit unserem neuen Verzeichnis und den server_name mit unserem Domänennamen aktualisiert haben.

      Als Nächstes aktivieren wir die Datei, indem wir sie mit dem sites-enabled-Verzeichnis verknüpfen, das Nginx beim Starten liest:

      • sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

      Zwei Serverblocks sind nun aktiviert und konfiguriert, um Anfragen auf Grundlage ihrer Anweisungen listen und server_name zu beantworten (mehr darüber, wie Nginx diese Anweisungen prozessiert, lesen Sie hier):

      • your_domain: Antwortet auf Anfragen für your_domain und www.your_domain.
      • default: Antwortet auf alle Anfragen an Port 80, die nicht mit den anderen beiden Blocks übereinstimmen.

      Um ein mögliches Hash-Bucket-Speicherproblem zu vermeiden, das aus dem Hinzufügen zusätzlicher Servernamen entstehen kann, ist es erforderlich, einen einzelnen Wert in der Datei /etc/nginx/nginx.conf anzupassen. Öffnen Sie die Datei:

      • sudo nano /etc/nginx/nginx.conf

      Suchen Sie die Anweisung server_names_hash_bucket_size und entfernen Sie das Symbol #, um die Kommentierung der Zeile aufzuheben. Wenn Sie nano verwenden, können Sie mit STRG und w schnell nach Wörtern in der Datei suchen.

      /etc/nginx/nginx.conf

      ...
      http {
          ...
          server_names_hash_bucket_size 64;
          ...
      }
      ...
      

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Als Nächstes testen Sie, um sicherzustellen, dass es in keiner Ihrer Nginx-Dateien Syntaxfehler gibt:

      Wenn es keine Probleme gibt, starten Sie Nginx neu, um Ihre Änderungen zu aktivieren:

      • sudo systemctl restart nginx

      Nginx sollte jetzt für Ihren Domänennamen eingerichtet sein. Sie können dies testen, indem Sie zu http://your_domain navigieren, wo Sie etwas Ähnliches wie Folgendes sehen sollten:

      Erster Nginx-Serverblock

      Schritt 6 – Kennenlernen der wichtigen Nginx-Dateien und -Verzeichnisse

      Nachdem Sie nun wissen, wie Sie den Nginx-Dienst verwalten, nehmen Sie sich einige Minuten Zeit, um sich mit einigen wichtigen Verzeichnissen und Dateien vertraut zu machen.

      Inhalt

      • /var/www/html: Der eigentliche Webinhalt, der standardmäßig nur aus der Nginx-Standardseite besteht, die Sie zuvor gesehen haben, wird aus dem Verzeichnis /var/www/html bedient. Das kann durch die Anpassung der Konfigurationsdateien von Nginx geändert werden.

      Server-Konfiguration

      • /etc/nginx: Das Nginx-Konfigurationsverzeichnis. Hier befinden sich alle Konfigurationsdateien von Nginx.
      • /etc/nginx/nginx.conf: Die Hauptkonfigurationsdatei von Nginx. Dies kann modifiziert werden, um die globale Konfiguration von Nginx zu ändern.
      • /etc/nginx/sites-available/: Das Verzeichnis, in dem Serverblocks pro Website 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. Üblicherweise wird die gesamte Serverblockkonfiguration in diesem Verzeichnis ausgeführt und durch Verknüpfung mit dem anderen Verzeichnis aktiviert.
      • /etc/nginx/sites-enabled/: Das Verzeichnis, in dem aktivierte Serverblocks pro Website gespeichert werden. Üblicherweise werden diese erstellt, indem Sie mit Konfigurationsdateien verknüpft werden, die im Verzeichnis sites-available zu finden sind.
      • /etc/nginx/snippets: Dieses Verzeichnis enthält Konfigurationsfragmente, die an anderer Stelle in der Nginx-Konfiguration enthalten sein können. Potenziell wiederholbare Konfigurationssegmente sind gute Kandidaten für das Refactoring in Snippets.

      Serverprotokolle

      • /var/log/nginx/access.log: Jede Anfrage auf Ihrem Webserver wird in dieser Protokolldatei aufgezeichnet, sofern Nginx nicht anders konfiguriert ist.
      • /var/log/nginx/error.log: In diesem Protokoll werden alle Nginx-Fehler aufgezeichnet.

      Zusammenfassung

      Nach der Installation Ihres Webservers haben Sie nun viele Möglichkeiten für die Art des Inhalts und die Technologien, die Sie verwenden möchten, um eine umfassendere Benutzererfahrung zu erzielen.

      Wenn Sie einen vollständigeren Anwendungsstapel erstellen möchten, lesen Sie den Artikel Installieren von Linux, Nginx, MySQL und PHP (LEMP-Stack) unter Ubuntu 20.04.



      Source link