Tutorial

So installieren Sie Nginx auf Ubuntu 18.04

Published on April 26, 2019
Deutsch
So installieren Sie Nginx auf Ubuntu 18.04

Einführung

Nginx ist einer der beliebtesten Webserver der Welt und verantwortlich für das Hosting einiger der größten und verkehrsreichsten Webseiten im Internet. Er ist in den meisten Fällen ressourcenfreundlicher als Apache und kann als Webserver oder Umkehrproxy eingesetzt werden.

In diesem Leitfaden wird erläutert, wie Sie Nginx auf Ihrem Ubuntu 18.04-Server installieren.

Voraussetzungen

Bevor Sie mit diesem Leitfaden beginnen, sollten Sie einen regulären, nicht root-fähigen Benutzer mit sudo-Rechten auf Ihrem Server konfigurieren. Sie können lernen, wie Sie ein reguläres Benutzerkonto konfigurieren, indem Sie unserem Installationshandbuch für Ubuntu 18.04 folgen.

Wenn Sie über ein Konto verfügen, melden Sie sich als Nicht-Root-Benutzer an, um zu beginnen.

Schritt 1 – Nginx installieren

Da Nginx in den Standard-Repositories von Ubuntu verfügbar ist, kann es über das apt -Paketsystem aus diesen Repositories installiert werden.

Dies ist unsere erste Interaktion mit dem apt -Paketsystem in dieser Sitzung, daher werden wir unseren lokalen Paketindex aktualisieren, so dass wir Zugriff auf die neuesten Paketlisten haben. Anschließend können wir nginx installieren:

  1. sudo apt update
  2. sudo apt install nginx

Nachdem Sie die Vorgehensweise akzeptiert haben, installiert apt Nginx und alle erforderlichen Anhänge auf Ihrem Server.

Schritt 2 – Firewall anpassen

Um Nginx zu testen, 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 auf Nginx möglich ist.

Die Anwendungskonfigurationen auflisten, mit denen ufw vertraut ist, indem Sie eingeben:

  1. sudo ufw app list

Sie sollten eine Auflistung der Anwendungsprofile erhalten:

Output
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

Wie Sie sehen können, gibt es für Nginx drei Profile:

  • Nginx Vollständig: Dieses Profil öffnet sowohl Port 80 (normaler, unverschlüsselter Webverkehr) als auch Port 443 (TLS/SSL-verschlüsselter Datenverkehr)
  • 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 wir in diesem Handbuch noch kein SSL für unseren Server konfiguriert haben, müssen wir nur den Datenverkehr auf Port 80 zulassen.

Aktivieren Sie dies durch folgende Eingabe:

  1. sudo ufw allow 'Nginx HTTP'

Um die Änderung zu überprüfen, geben Sie Folgendes ein:

  1. sudo ufw status

Sie sollten sehen, dass der HTTP-Verkehr in der angezeigten Ausgabe erlaubt 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 – Überprüfen Ihres Webservers

Am Ende des Installationsprozesses startet Ubuntu 18.04 Nginx. Der Webserver sollte bereits in Betrieb sein.

Mit dem systemd init-System können wir überprüfen, ob der Dienst ausgeführt wird, indem wir Folgendes 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 Fri 2018-04-20 16:08:19 UTC; 3 days ago Docs: man:nginx(8) Main PID: 2369 (nginx) Tasks: 2 (limit: 1153) CGroup: /system.slice/nginx.service ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2380 nginx: worker process

Wie Sie oben sehen können, scheint der Dienst erfolgreich gestartet zu sein. Der beste Weg, dies zu testen, ist jedoch, eine Seite bei Nginx anzufordern.

Durch die Navigation zur IP-Adresse Ihres Servers können Sie auf die standardmäßige Nginx-Landseite zugreifen, um zu bestätigen, dass die Software ordnungsgemäß ausgeführt wird. Wenn Sie die IP-Adresse Ihres Servers nicht kennen, können Sie sie auf verschiedene Arten erhalten.

Versuchen Sie, dies an der Eingabeaufforderung Ihres Servers einzugeben:

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

Sie erhalten ein paar Zeilen zurück. Sie können diese jeweils in Ihrem Webbrowser ausprobieren, um zu sehen, ob sie funktionieren.

Eine Alternative ist die Eingabe, die Ihnen Ihre öffentliche IP-Adresse aus der Sicht eines anderen Standorts im Internet geben sollte:

  1. curl -4 icanhazip.com

Wenn Sie die IP-Adresse Ihres Servers haben, geben Sie diese in die Adressleiste Ihres Browsers ein:

http://your_server_ip

Sie sollten die standardmäßige Anmeldeseite von Nginx sehen:

 Nginx-Standardseite

Diese Seite ist in Nginx enthalten, um Ihnen zu zeigen, dass der Server ordnungsgemäß arbeitet.

Schritt 4 – Verwaltung des Nginx-Prozesses

Nun, da Sie Ihren Webserver in Betrieb haben, lassen Sie uns einige grundlegende Verwaltungsbefehle durchgehen.

Um Ihren Webserver zu stoppen, geben Sie Folgendes ein:

  1. sudo systemctl stop nginx

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

  1. sudo systemctl start nginx

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

  1. sudo systemctl restart nginx

Wenn Sie lediglich Konfigurationsänderungen vornehmen, kann Nginx oft neu laden, ohne die Verbindungen zu verlieren. Geben Sie dazu Folgendes ein:

  1. sudo systemctl reload nginx

Standardmäßig ist Nginx so konfiguriert, dass es automatisch startet, wenn der Server bootet. Wenn Sie dies nicht wünschen, können Sie dieses Verhalten durch folgende Eingabe deaktivieren:

  1. sudo systemctl disable nginx

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

  1. sudo systemctl enable nginx

Schritt 5 – Einrichten von Serverblöcken (empfohlen)

Bei Verwendung des Nginx-Webservers können_Serverblöcke_ (ähnlich wie virtuelle Hosts im Apache) verwendet werden, um Konfigurationsdetails zu kapseln und mehr als eine Domäne von einem einzigen Server aus zu hosten. Wir werden eine Domäne namens example.comeinrichten, aber Sie sollten diese durch Ihren eigenen ** Domänennamen ersetzen**. Weitere Informationen zum Einrichten eines Domänennamens mit DigitalOcean finden Sie in unserer Einführung in DigitalOcean DNS.

Auf Ubuntu 18.04 hat Nginx einen Serverblock aktiviert, der standardmäßig so konfiguriert ist, dass er Dokumente aus einem Verzeichnis unter /var/wwww/html bedient. Dies funktioniert zwar gut für einen einzelnen Standort, kann aber bei mehreren Standorten unpraktisch werden. Anstatt /var/www/html zu ändern, erstellen wir eine Verzeichnisstruktur in /var/www für unsere example.com-Seite, indem wir /var/www/html als Standardverzeichnis beibehalten, das zu bedienen ist, wenn eine Kundenanfrage mit keiner anderen Seite übereinstimmt.

Erstellen Sie das Verzeichnis example.com wie folgt und verwenden Sie -p um alle notwendigen übergeordneten Verzeichnisse zu erstellen:

  1. sudo mkdir -p /var/www/example.com/html

Als nächstes weisen Sie dem Verzeichnis mit der Umgebungsvariablen $USER das Besitzerrecht zu:

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

Die Berechtigungen Ihrer Web-Roots sollten korrekt sein, wenn Sie Ihren umask -Wert nicht geändert haben, aber Sie können dies überprüfen, indem Sie Folgendes eingeben:

  1. sudo chmod -R 755 /var/www/example.com

Als nächstes erstellen Sie ein Muster einer index.html -Seite mit nano oder Ihrem bevorzugten Editor:

  1. nano /var/www/example.com/html/index.html

Fügen Sie darin folgende Beispiel-HTML hinzu:

/var/www/example.com/html/index.html
<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>

Speichern und schließen Sie die Datei nach Abschluss des Vorgangs.

Damit Nginx diese Inhalte bereitstellen kann, ist es notwendig, einen Serverblock mit den richtigen Anweisungen zu erstellen. Anstatt die Standardkonfigurationsdatei direkt zu ändern, machen wir eine neue unter /etc/nginx/sites-available/example.com:

  1. sudo nano /etc/nginx/sites-available/example.com

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

/etc/nginx/sites-available/example.com
server {
        listen 80;
        listen [::]:80;

        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

Beachten Sie, dass wir die Root-Konfiguration in unserem neuen Verzeichnis und den server_name in unserem Domänennamen aktualisiert haben.

Anschließend aktivieren wir die Datei, indem wir einen Link zu dem sites-enabled-Verzeichnis erstellen, aus dem Nginx beim Start liest:

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

Zwei Serverblöcke sind nun aktiviert und konfiguriert, um auf Anfragen basierend auf ihren listen- und server_name-Anweisungen zu reagieren (Sie können hier mehr darüber erfahren, wie Nginx diese Anweisungen verarbeitet):

  • example.com: Beantwortet Anfragen für example.comundwww.example.com`.
  • default: Beantwortet alle Anfragen auf Port 80, die nicht mit den anderen beiden Blöcken übereinstimmen.

Um ein mögliches Hash-Bucket-Speicherproblem zu vermeiden, das durch das Hinzufügen zusätzlicher Servernamen entstehen kann, ist es notwendig, einen Einzelwert in der Datei /etc/nginx/nginx.conf anzupassen. Die Datei öffnen:

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

Finden Sie den Befehl server_names_hash_bucket_size und entfernen Sie das Symbol #, um die Zeile zu entkommentieren:

/etc/nginx/nginx.conf
...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Prüfen Sie anschließend, ob in Ihren Nginx-Dateien keine Syntaxfehler vorhanden sind:

  1. sudo nginx -t

Speichern und schließen Sie die Datei nach Abschluss des Vorgangs.

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

  1. sudo systemctl restart nginx

Nginx sollte nun Ihren Domänennamen bereitstellen. Dies können Sie testen, indem Sie zu http://example.com navigieren, wo Sie so etwas sehen sollten:

Nginx erster Serverblock

Schritt 6 – Vertrautmachen mit wichtigen Nginx-Dateien und -Verzeichnissen

Da Sie nun wissen, wie Sie den Nginx-Dienst selbst verwalten, sollten Sie sich einige 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 Standard-Nginx-Seite besteht, die Sie zuvor gesehen haben, wird aus dem Verzeichnis /var/wwww/html bereitgestellt. Dies kann durch Anpassen der Nginx-Konfigurationsdateien geändert werden.

Serverkonfiguration

  • /etc/nginx: Das Nginx-Konfigurationsverzeichnis. Alle Nginx-Konfigurationsdateien befinden sich hier.
  • /etc/nginx/nginx.conf: Die Hauptkonfigurationsdatei von Nginx. Dies kann modifiziert werden, um Änderungen an der globalen Nginx-Konfiguration vorzunehmen.
  • /etc/nginx/sites-available/: Das Verzeichnis, in dem die Serverblöcke pro Standort gespeichert werden können. Nginx verwendet die Konfigurationsdateien in diesem Verzeichnis nur dann, wenn sie mit dem sites-enabled-Verzeichnis verknüpft sind. In der Regel wird die gesamte Konfiguration des Serverblocks in diesem Verzeichnis durchgeführt und dann durch Verknüpfung mit dem anderen Verzeichnis aktiviert.
  • /etc/nginx/sites-enabled/: Das Verzeichnis, in dem die aktivierten Serverblöcke pro Standort gespeichert sind. In der Regel werden diese durch die Verknüpfung mit Konfigurationsdateien erstellt, die sich in dem Verzeichnis sites-available befinden.
  • /etc/nginx/snippets: Dieses Verzeichnis enthält Konfigurationsfragmente, die an anderer Stelle in der Nginx-Konfiguration eingefügt werden können. Potenziell wiederholbare Konfigurationssegmente sind gute Kandidaten für das Repaktorieren in Einzelteile.

Serverprotokolle

  • /var/log/nginx/access.log: Jede Anfrage an Ihren Webserver wird in dieser Protokolldatei aufgezeichnet, sofern Nginx nicht anders konfiguriert ist.
  • /var/log/nginx/error.log: Alle Nginx-Fehler werden in diesem Protokoll festgehalten.

Fazit

Da Ihr Webserver nun installiert ist, haben Sie viele Optionen für die Art der zu erstellenden Inhalte und die Technologien, die Sie verwenden möchten, um ein reichhaltigeres Erlebnis zu schaffen.

Wenn Sie einen vollständigeren Applikationsstapel erstellen möchten, lesen Sie diesen Artikel, wie Sie einen LEMP-Stapel unter Ubuntu 18.04 konfigurieren können.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.