Wie installiert man Nginx auf Ubuntu 18.04?

0 Aktien
0
0
0
0

Einführung

Nginx ist einer der weltweit beliebtesten Webserver und hostet einige der größten und meistbesuchten Websites im Internet. In den meisten Fällen ist er ressourcenschonender als Apache und kann sowohl als Webserver als auch als Reverse-Proxy eingesetzt werden.

In diesem Leitfaden erfahren Sie, wie Sie Nginx auf einem Ubuntu 18.04-Server installieren und welche wichtigen Nginx-Dateien und -Verzeichnisse es gibt.

Voraussetzungen

Bevor Sie mit dieser Anleitung beginnen, müssen Sie auf Ihrem Server einen regulären Benutzer ohne Root-Rechte mit sudo-Berechtigungen und einer einfachen Firewall einrichten. Wie Sie ein solches Benutzerkonto konfigurieren, erfahren Sie in unserer Anleitung zur grundlegenden Servereinrichtung für Ubuntu 18.04.

Sobald Sie über ein Konto verfügen, melden Sie sich als normaler Benutzer (kein Root-Benutzer) an, um loszulegen.

Schritt 1 – Nginx installieren

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

Da dies möglicherweise Ihre erste Interaktion mit dem apt-Paketverwaltungssystem in dieser Sitzung ist, aktualisieren Sie Ihr lokales Paketverzeichnis, um Zugriff auf die neuesten Paketlisten zu erhalten. Danach können Sie nginx installieren:

sudo apt update
sudo apt install nginx

Nach Bestätigung des Vorgangs installiert apt Nginx und alle erforderlichen Abhängigkeiten auf Ihrem Server.

Schritt 2 – Firewall konfigurieren

Vor dem Testen von Nginx muss die Firewall-Software so konfiguriert werden, dass der Zugriff auf den Dienst erlaubt ist. Nach der Installation registriert sich Nginx als Dienst bei ufw, wodurch der Zugriff auf Nginx einfach freigegeben werden kann.

Geben Sie Folgendes ein, um die Anwendungskonfigurationen aufzulisten, mit denen ufw arbeiten kann:

sudo ufw app list

Die Ausgabe sollte eine Liste von Anwendungsprofilen sein:

Output
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

Diese Liste zeigt die drei für Nginx verfügbaren Profile:

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

Es wird empfohlen, das restriktivste Profil zu aktivieren, das den von Ihnen konfigurierten Datenverkehr noch zulässt. Da Sie in dieser Anleitung SSL für Ihren Server noch nicht konfiguriert haben, müssen Sie lediglich den Datenverkehr auf Port 80 zulassen.

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

sudo ufw allow 'Nginx HTTP'

Bestätigen Sie anschließend die Änderung:

sudo ufw status

In der Ausgabe sollte eine Liste des zulässigen HTTP-Verkehrs angezeigt werden:

Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere 
Nginx HTTP ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6) 
Nginx HTTP (v6) ALLOW Anywhere (v6)

Nachdem Sie die entsprechende Firewall-Regel hinzugefügt haben, können Sie überprüfen, ob Ihr Webserver läuft und Inhalte ordnungsgemäß bereitstellen kann.

Schritt 3 – Überprüfen Sie Ihren Webserver

Am Ende des Installationsvorgangs startet Ubuntu 18.04 Nginx. Der Webserver sollte bereits laufen.

Überprüfen Sie mit systemd init, ob der Dienst ausgeführt wird:

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: en
Active: active (running) since Fri 2021-10-01 21:36:15 UTC; 35s ago
Docs: man:nginx(8)
Main PID: 9039 (nginx)
Tasks: 2 (limit: 1151)
CGroup: /system.slice/nginx.service
├─9039 nginx: master process /usr/sbin/nginx -g daemon on; master_pro
└─9041 nginx: worker process

Diese Ausgabe zeigt, dass der Dienst erfolgreich gestartet wurde. Der beste Test besteht jedoch darin, tatsächlich eine Seite von Nginx anzufordern.

Sie können die Standard-Startseite von Nginx aufrufen, indem Sie die IP-Adresse Ihres Servers verwenden, um zu überprüfen, ob die Software ordnungsgemäß funktioniert. Falls Sie die IP-Adresse Ihres Servers nicht kennen, gibt es verschiedene Möglichkeiten, diese zu ermitteln.

Versuchen Sie, Folgendes in die Befehlszeile Ihres Servers einzugeben:

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

Sie erhalten einige Zeilen. Sie können jede einzelne in Ihrem Webbrowser ausprobieren, um zu überprüfen, ob sie funktionieren.

Alternativ können Sie den folgenden Befehl ausführen, der Ihre öffentliche IP-Adresse so erzeugen sollte, wie sie von einem anderen Standort im Internet ermittelt wird:

curl -4 icanhazip.com

Sobald Sie die IP-Adresse Ihres Servers haben, geben Sie diese in die Adresszeile Ihres Browsers ein:

http://your_server_ip

Sie sollten die standardmäßige Nginx-Startseite sehen:

Diese Seite wird mit Nginx ausgeliefert, um zu überprüfen, ob der Server ordnungsgemäß läuft.

Schritt 4 – Den Nginx-Prozess verwalten

Nachdem Sie Ihren Webserver eingerichtet haben, sehen wir uns nun einige grundlegende administrative Befehle an.

Um Ihren Webserver zu stoppen, geben Sie Folgendes ein:

sudo systemctl stop nginx

Um den Webserver neu zu starten, falls er stoppt, geben Sie Folgendes ein:

sudo systemctl start nginx

Um den Dienst zu stoppen und anschließend neu zu starten, geben Sie Folgendes ein:

sudo systemctl restart nginx

Wenn Sie lediglich Konfigurationsänderungen vornehmen, können Sie Nginx oft neu laden, ohne die Verbindungen zu trennen, anstatt es neu zu starten. Geben Sie dazu Folgendes ein:

sudo systemctl reload nginx

Standardmäßig ist Nginx so konfiguriert, dass es beim Serverstart automatisch startet. Falls Sie dies nicht wünschen, können Sie dieses Verhalten deaktivieren, indem Sie Folgendes eingeben:

sudo systemctl disable nginx

Um den Dienst wieder so zu aktivieren, dass er beim Systemstart automatisch gestartet wird, können Sie Folgendes eingeben:

sudo systemctl enable nginx

Nginx sollte nun beim Hochfahren des Servers automatisch neu starten.

Schritt 5 – Serverblöcke einrichten (empfohlen)

Bei Verwendung des Nginx-Webservers können Serverblöcke (ähnlich virtuellen Hosts in Apache) eingesetzt werden, um Konfigurationsdetails zu kapseln und mehrere Domains auf einem einzigen Server zu hosten. Wir richten eine Domain namens „your_domain“ ein, die Sie jedoch durch Ihren eigenen Domainnamen ersetzen sollten. Weitere Informationen zur Einrichtung von Domainnamen mit DigitalOcean finden Sie in unserer Einführung zu DigitalOcean DNS.

Nginx in Ubuntu 18.04 verfügt standardmäßig über einen Serverblock, der so konfiguriert ist, dass Dokumente außerhalb eines Verzeichnisses in /var/www/html ausgeliefert werden. Dies funktioniert zwar für eine einzelne Website problemlos, kann aber bei mehreren Websites umständlich werden. Anstatt /var/www/html zu ändern, erstellen wir eine Verzeichnisstruktur in /var/www für unsere Website mit Ihrer Domain und belassen /var/www/html als Standardverzeichnis für die Auslieferung, falls dieses nicht der Clientanfrage entspricht.

Erstellen Sie ein Verzeichnis für Ihre_Domain wie folgt und verwenden Sie den Parameter -p, um alle erforderlichen übergeordneten Verzeichnisse zu erstellen:

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

Weisen Sie anschließend die Besitzrechte für das Verzeichnis mithilfe der Umgebungsvariablen $USER zu:

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

Wenn Sie Ihren umask-Wert nicht geändert haben, sollten Ihre Web-Root-Berechtigungen korrekt sein. Sie können dies jedoch überprüfen, indem Sie Folgendes eingeben:

sudo chmod -R 755 /var/www/your_domain

Erstellen Sie als Nächstes eine Beispielseite index.html mit nano oder Ihrem bevorzugten Editor:

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

Fügen Sie darin das folgende HTML-Beispiel ein:

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

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Wenn Sie nano verwenden, können Sie das Programm beenden, indem Sie STRG + X, dann Y und anschließend die Eingabetaste drücken.

Damit Nginx diese Inhalte ausliefern kann, müssen Sie einen Serverblock mit den korrekten Anweisungen erstellen. Anstatt die Standardkonfigurationsdatei direkt zu ändern, erstellen Sie eine neue Datei in /etc/nginx/sites-available/your_domain:

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

Fügen Sie den folgenden Konfigurationsblock hinzu, der dem Standardblock ähnelt, jedoch für Ihr neues Verzeichnis und Ihren neuen Domänennamen aktualisiert wurde:

server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain.com www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}

Beachten Sie, dass wir die Root-Konfiguration auf das neue Verzeichnis und den Servernamen auf den Domänennamen aktualisiert haben. Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Aktivieren Sie anschließend die Datei, indem Sie einen Link von ihr zum Verzeichnis sites-enabled erstellen, aus dem Nginx beim Start liest:

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

Nun sind zwei Serverblöcke aktiviert und so konfiguriert, dass sie auf Anfragen basierend auf den Direktiven listen und server_name reagieren (mehr darüber, wie Nginx diese Direktiven verarbeitet, erfahren Sie hier):

  • your_domain: Beantwortet Anfragen für your_domain und www.your_domain.
  • Standardmäßig: Reagiert auf jede Anfrage an Port 80, die nicht mit den anderen beiden Blöcken übereinstimmt.

Um mögliche Speicherprobleme mit dem Hash-Bucket zu vermeiden, die durch das Hinzufügen weiterer Servernamen entstehen können, muss in der Datei `/etc/nginx/nginx.conf` ein einzelner Wert festgelegt werden. Öffnen Sie die Datei:

sudo nano /etc/nginx/nginx.conf

Suchen Sie den Befehl 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.

Als Nächstes sollten Sie prüfen, ob Ihre Nginx-Dateien Syntaxfehler enthalten:

sudo nginx -t

Wenn keine Probleme auftreten, starten Sie Nginx neu, damit Ihre Änderungen wirksam werden:

sudo systemctl restart nginx

Nginx sollte nun Ihre Domain bedienen. Sie können dies testen, indem Sie http://your_domain aufrufen. Dort sollte etwa Folgendes angezeigt werden:

Schritt 6 – Machen Sie sich mit wichtigen Nginx-Dateien und -Verzeichnissen vertraut

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

Inhalt
  • /var/www/html: Der eigentliche Webinhalt, der standardmäßig nur aus der zuvor gezeigten Nginx-Standardseite besteht, wird außerhalb des Verzeichnisses /var/www/html ausgeliefert. Dies kann durch Bearbeiten der Nginx-Konfigurationsdateien geändert werden.
Serverkonfiguration
  • /etc/nginx: Nginx-Konfigurationsverzeichnis. Alle Nginx-Konfigurationsdateien befinden sich hier.
  • /etc/nginx/nginx.conf: Die Hauptkonfigurationsdatei von Nginx. Diese kann bearbeitet werden, um Änderungen an der globalen Nginx-Konfiguration vorzunehmen.
  • /etc/nginx/sites-available/: Ein Verzeichnis, in dem Serverblöcke für jede Website gespeichert werden können. Nginx verwendet Konfigurationsdateien in diesem Verzeichnis nur, wenn sie mit dem Verzeichnis sites-enabled verknüpft sind. Normalerweise werden alle Serverblock-Konfigurationen in diesem Verzeichnis vorgenommen und anschließend durch Verknüpfung mit einem anderen Verzeichnis aktiviert.
  • /etc/nginx/sites-enabled/: Das Verzeichnis, in dem die für jede Website aktivierten Serverblöcke gespeichert werden. Normalerweise werden diese durch Verlinkung der Konfigurationsdateien im bestehenden Verzeichnis „sites“ erstellt.
  • /etc/nginx/snippets: Dieses Verzeichnis enthält Konfigurationsabschnitte, die an anderer Stelle in der Nginx-Konfiguration eingebunden werden können. Wiederholbare Konfigurationsabschnitte eignen sich gut für die Umwandlung in Snippets.
Serverberichte
  • /var/log/nginx/access.log: Jede Anfrage an Ihren Webserver wird in dieser Protokolldatei protokolliert, es sei denn, Nginx ist anders konfiguriert.
  • /var/log/nginx/error.log: In dieser Datei werden alle Nginx-Fehler protokolliert.

Ergebnis

Nachdem Ihr Webserver nun installiert ist, stehen Ihnen viele Möglichkeiten hinsichtlich der Art der Inhalte und Technologien zur Verfügung, mit denen Sie ein ansprechenderes Nutzererlebnis schaffen können.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen