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 on Ihrem Server konfigurieren. Sie können lernen, wie Sie ein reguläres Benutzerkonto konfigurieren, indem Sie unserem Installationshandbuch for 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:

sudo apt update
sudo apt install nginx

Nachdem Sie die Prozedur 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 +, dabei ist ein unkomplizierter Zugriff auf Nginx möglich.

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

sudo ufw app list

Sie sollten eine Auflistung der Anwendungsprofile erhalten:

OutputAvailable applications:
 Nginx Full
 Nginx HTTP
 Nginx HTTPS
 OpenSSH

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

  • * 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 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:

sudo ufw allow 'Nginx HTTP'

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

sudo ufw status

Sie sollten sehen, dass der HTTP-Verkehr in der angezeigten Ausgabe erlaubt ist:

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 Sie Ihren Webserver

Am Ende des Installationsprozesses wurde Ubuntu 18.04 Nginx gestartet. 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 eingeben:

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:  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. The best way, this to test, is jedoch a page at 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 auf verschiedene Arten zugreifen.

Versuchen Sie, dies an der Eingabeaufforderung Ihres Servers einzugeben:

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.

ICH BIN EINE ALTERNATIVE, DIE EINGABE IHRER ÖFFENTLICHEN IP-ADRESSE

curl -4 icanhazip.com

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

http://

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

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

Schritt 4 - Verwaltung des Nginx-Prozesses

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

Um Ihren Webserver zu stoppen, geben Sie diesen ein:

sudo systemctl stop nginx

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

sudo systemctl start nginx

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

sudo systemctl restart nginx

Wenn Sie lediglich Konfigurationsänderungen vornehmen, können Sie Nginx oftmals neu laden, ohne die Verbindungen zu verlieren. Geben Sie dazu ein:

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:

sudo systemctl disable nginx

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

sudo systemctl enable nginx

Schritt 5 - Einrichten von Serverblöcken (empfohlen)

Bei Verwendung des Nginx-Webservers könnenServerblöcke (ähnlich wie virtuelle Hosts im Apache) verwendet werden, um Konfigurationsdetails zu kapseln und mehr als eine Domäne von einem bestimmten Server aus zu hosten. Wir werden eine Domäne namens example.com einrichten, aber Sie sollten diese durch Ihre eigenen Domänennamen ersetzen . Weitere Informationen zum Einrichten eines Domänennamens mit DigitalOcean finden Sie in unserer https://www.digitalocean.com/community/tutorials/an-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 für einen einzelnen Standort, kann aber bei mehreren Standorten unpraktisch werden. Anstatt + / var / www / html + für unsere * example.com * -Seite, indem wir + / var / www / html + als Standardverzeichnis angeben, the use is if a customer request with none other page matching.

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

sudo mkdir -p /var/www//html

Als nächstes weisen Sie das Verzeichnis mit den Umgebungsvariablen + $ USER + das Besitzerrecht zu:

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

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

sudo chmod -R 755 /var/www/

+ Index.html + -Seite mit + nano + `oder Ihrem bevorzugten Editor:

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

Beispiel-HTML hinzufügen

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

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

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

Damit Nginx diesen Inhalt 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 / +:

sudo nano /etc/nginx/sites-available/

Fügen Sie den folgenden Konfigurationsblock ein, der dem Standard ähnlich ist, aber für unser neues Verzeichnis and our new domain names updated wurde:

/etc/nginx/sites-available/example.com

server {
       listen 80;
       listen [::]:80;

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

       server_name  www.;

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

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

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

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

Sie können https://www.digitalocean.com/community/tutorials/understanding-nginx- server-and-location-block-selection-algorithmen [hier] mehr darüber erfahren, wie Nginx diese Anweisungen verarbeitet):

  • + example.com +: Beantwortet Anfragen für example.com` + und + http: //www.example.com%60 [www.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, kann das Hinzufügen zusätzlicher Servernamen erfolgen, es ist notwendig, einen Einzelwert in der Datei + / etc / nginx / nginx.conf + anzugeben. Die Datei öffnen:

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;
   ...
}
...

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

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:

sudo systemctl restart nginx

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

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

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

Inhalt

  • + / var / www / html +: Der eigentliche Webinhalt, der standardmäßig nur aus der Standard-Nginx-Seite besteht, der bisher gesehen wurde, 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 geändert 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 benutzt die Konfigurationsdateien in diesem Verzeichnis nur, 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 einer anderen Stelle in der Nginx-Konfiguration eingefügt werden können. Potenziell wiederholbare Konfigurationssegmente sind gute Kandidaten für das Repaktorieren in Einzelteilen.

Serverprotokolle

  • + / var / log / nginx / access.log +: Jede Anfrage an Ihren Webserver wird in dieser Protokolldatei bearbeitet, 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 Erstellung von Inhalten und Technologien, die Sie benötigen, um ein reichhaltigeres Erlebnis zu schaffen.

Wenn Sie einen vollständigen Applikationsstapel erstellen möchten, lesen Sie diesen Artikel, https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04 [wie Sie einen LEMP-Stapel unter Ubuntu 18.04] konfigurieren können.