BLOG | NGINX

Anleitung: Einrichten von NGINX und NGINX Plus als Webserver und Reverse-Proxy in AWS

NGINX-Teil-von-F5-horiz-schwarz-Typ-RGB
Aidan Carson Miniaturbild
Aidan Carson
Veröffentlicht am 12. November 2021

Seit seiner Einführung vor mehr als 15 Jahren hat NGINX stetig an Popularität gewonnen und ist heute der beliebteste Webserver der Welt , der mehr als [ngx_snippet name='number-sites'] Websites betreibt. In diesem Fall halten wir es für eine kluge Idee, dem Beispiel der Masse zu folgen und NGINX für alle Ihre Webserver- Anforderungen zu verwenden und zusätzlich seine Funktionen als Reverse-Proxy , Inhaltscache , Load Balancer , API-Gateway und mehr zu nutzen.

Dieser Blogbeitrag führt Sie durch die Installation und Ausführung von NGINX auf Ubuntu 20.04 auf Amazon Web Services (AWS) in einem benutzerfreundlichen Setup, das die Einstellungen auf Ihrem PC nicht beeinträchtigt. Es umfasst sowohl NGINX als auch NGINX Plus , die kommerziell unterstützte Version mit zusätzlichen Funktionen der Unternehmensklasse.

Nachdem Sie die hier angegebenen Schritte abgeschlossen haben, möchten Sie möglicherweise mit der NGINX Core-Schulung ( mit Lehrer oder auf Anfrage ) fortfahren. Dabei handelt es sich um einen ganztägigen Kurs, in dem Sie lernen, wie Sie NGINX konfigurieren, verwalten und managen. Der Kurs bereitet Sie auch auf unsere anderen Kurse mit Lehrer und im eigenen Tempo zu fortgeschrittenen Themen vor.

Das Tutorial enthält Anweisungen für die folgenden Aufgaben:

Auf ein Terminal zugreifen

Für dieses Tutorial benötigen Sie ein Terminal, um eine Verbindung zu Ihrer Amazon Elastic Compute Cloud (EC2)-Instanz herzustellen. Macs verfügen über ein integriertes Terminal, aber Windows-Benutzer müssen PuTTY oder ein gleichwertiges Tool herunterladen. Wenn Sie zum Einrichten von NGINX oder NGINX Plus und Bereitstellen von Webinhalten lieber Ihr eigenes lokales Terminal verwenden möchten, können Sie direkt zu „AWS einrichten“ springen.

Zugriff auf ein Terminal unter MacOS

Auf Macs können Sie für alle Schritte dieses Tutorials das integrierte Terminaltool verwenden.

  1. Klicken Sie auf das Lupensymbol am rechten Ende der oberen Leiste auf dem Bildschirm.

  2. Geben Sie „Terminal“ in das Popup-Fenster ein und drücken Sie die Eingabetaste. Es öffnet sich ein separates Terminalfenster.

Zugriff auf ein Terminal unter Windows

Windows verfügt nicht über ein integriertes Terminal, daher müssen Sie eines aus dem Internet herunterladen. Neben AWS empfehlen wir PuTTY, einen weltweit verwendeten SSH- Client.

  1. Rufen Sie die PUTTY-Downloadseite auf.

  2. Laden Sie die Datei herunter, installieren Sie sie an einem Speicherort Ihrer Wahl und öffnen Sie sie anschließend. Sie können jedoch erst auf das eigentliche Terminal zugreifen, wenn Sie die Schritte zum Einrichten von AWS abgeschlossen haben.

Einrichten von AWS

In diesem Tutorial gehen wir davon aus, dass Sie über eine Amazon Virtual Private Cloud (VPC) verfügen und einfach die Standard-VPC-Konfiguration verwenden können, die bei den meisten Konten erstellt wird. In diesem Abschnitt richten Sie Ihre AWS-Bereitstellung ein, indem Sie eine EC2-Instanz erstellen und eine Verbindung damit herstellen.

Notiz: Das folgende Verfahren und die Screenshots zum Erstellen einer EC2-Instanz wurden zum Zeitpunkt des Schreibens überprüft, können jedoch von AWS geändert werden. Passen Sie die Anweisungen nach Bedarf an.

  1. Melden Sie sich auf der AWS-Startseite bei der (AWS-Management-)Konsole an oder erstellen Sie bei Bedarf zunächst ein neues Konto.

  2. Klicken Sie in der Titelleiste der Konsole auf „Dienste“ und dann im Abschnitt „Compute“ auf „EC2“ .

    Screenshot, der die Auswahl von „EC2“ auf der AWS-Seite „Dienste“ zeigt

  3. Klicken Sie auf der sich öffnenden EC2-Dashboard-Seite auf die Schaltfläche „Instanz starten“ .

  4. Klicken Sie auf der Seite „ Schritt 1“ in der Zeile „Ubuntu Server 20.04 LTS (HVM), SSD-Volume-Typ“ auf die Schaltfläche „Auswählen“ und behalten Sie die Standardauswahl der 64-Bit-Architektur (x86) bei.

    Screenshot der Seite „Schritt 1“ im Amazon EC2-Assistenten zur Instanzerstellung

  5. Wählen Sie auf der Seite „ Schritt 2 “ den Instanztyp „t2.micro“ aus, der zum Zeitpunkt des Schreibens dieses Artikels als „Für die kostenlose Stufe geeignet“ markiert und standardmäßig ausgewählt ist. Klicken Sie auf Weiter: Instanzdetails konfigurieren  Taste.

    Screenshot der Seite „Schritt 2“ im Amazon EC2-Assistent zur Instanzerstellung

  6. Stellen Sie auf der Seite „ Schritt 3“ sicher, dass im Feld „Netzwerk“ die zu verwendende VPC ausgewählt ist und dass das Feld „Öffentliche IP automatisch zuweisen“ entweder auf die Standardeinstellung „Subnetz verwenden (Aktivieren)“ oder auf „Aktivieren“ gesetzt ist. Belassen Sie die restlichen Einstellungen auf den Standardwerten.

    Screenshot der Seite „Schritt 3“ im Amazon EC2-Assistent zur Instanzerstellung

  7. Klicken Sie auf 6. Konfigurieren Sie die Sicherheitsgruppe oben auf der Seite.

  8. Führen Sie auf der Seite „ Schritt 6 “ die folgenden Schritte aus, um eingehenden HTTP- und HTTPS-Datenverkehr zuzulassen (standardmäßig akzeptieren EC2-Instanzen nur SSH-Datenverkehr):

    • Klicken Sie unter der Tabelle auf die Schaltfläche „Regel hinzufügen“ und wählen Sie dann im Dropdownmenü in der Spalte „Typ“ die Option „HTTP“ aus. Für die Zwecke dieses Tutorials erlauben wir den Zugriff von jeder beliebigen IP-Adresse (der Wert in der Spalte „Quelle“ lautet „Überall 0.0.0.0/0, ::/0 “). Für Produktionsumgebungen empfehlen wir Ihnen, die Warnung auf der Seite zu beachten, die die Verwendung von Sicherheitsgruppen zur Zugriffskontrolle vorschreibt.

    • Wiederholen Sie den vorherigen Schritt für HTTPS .

    • Klicken Sie unten auf der Seite auf die Schaltfläche „Überprüfen und starten“ .

    Screenshot der Seite „Schritt 6“ im Amazon EC2-Assistent zur Instanzerstellung

  9. Klicken Sie auf der Seite „Schritt 7“ unten auf die Schaltfläche „Starten“ .

  10. Erstellen Sie im angezeigten Feld ein neues Schlüsselpaar:

    • Wählen Sie im oberen Dropdownmenü die Option „Neues Schlüsselpaar erstellen“ aus.

    • Wählen Sie einen Schlüsselpaartyp aus. In diesem Tutorial wählen wir RSA aus.

    • Geben Sie im Feld „Schlüsselpaarname“ einen Namen ein, beispielsweise NGINX_key .

    • Klicken Sie auf die Schaltfläche „Schlüsselpaar herunterladen“ .

    • Wie im animierten Screenshot unten gezeigt, wird die Schaltfläche „Schlüsselpaar herunterladen“ durch ein Kontrollkästchen ersetzt. Klicken Sie darauf, um anzugeben, dass Sie auf den privaten Schlüssel zugreifen können.

    • Klicken Sie auf die Schaltfläche „Instanzen starten“ .

    Screenshot des Amazon EC2-Popup-Fensters „Vorhandenes Schlüsselpaar auswählen oder neues Schlüsselpaar erstellen“

  11. Verschieben Sie in Ihrem Dateimanager-Dienstprogramm die heruntergeladene PEM- Datei (im Lernprogramm „NGINX_key.pem “) an einen sicheren Ort. Für das Tutorial platzieren wir es im Verzeichnis /Desktop/NGINX .

  12. Wenn Sie ein Windows-Terminal verwenden, befolgen Sie die AWS-Anweisungen, um das Dienstprogramm PuTTYgen herunterzuladen und die PEM- Datei in eine PPK- Datei zu konvertieren.

  13. Klicken Sie unten auf der Seite „Startstatus“ auf die Schaltfläche „Instanzen anzeigen“ .

  14. Auf der sich öffnenden Seite „Instanzen“ wird die neue Instanz in der Tabelle angezeigt. Geben Sie ihm einen Namen:

    • Klicken Sie in der Spalte „Name“ auf das Bleistiftsymbol.

    • Geben Sie den Namen in das Popup-Feld „Namen bearbeiten“ ein und klicken Sie auf die Schaltfläche „Speichern“ .

    Screenshot der Amazon EC2-Seite „Instanzen“, die die Bearbeitung des Instanznamens zeigt

  15. Klicken Sie oben auf dem Bildschirm auf die Schaltfläche „Verbinden“ . Ein Fenster wie das folgende wird angezeigt. Öffnen Sie die Registerkarte SSH-Client und folgen Sie den Anweisungen, um eine Verbindung mit der Instanz herzustellen. Wenn Sie Windows verwenden, ersetzen Sie in den Befehlen .pem durch .ppk .

    Screenshot des Amazon EC2-Popup-Fensters „Mit Instanz verbinden“

Installieren der NGINX-Software

Nachdem Ihre AWS-Umgebung nun eingerichtet ist, ist es an der Zeit, entweder NGINX Open Source oder NGINX Plus zu installieren, das Sie 30 Tage lang kostenlos testen können. Beide Optionen funktionieren im Rahmen dieses Tutorials. Wenn Sie jedoch die erweiterten Funktionen von NGINX Plus genauer erkunden möchten, fordern Sie eine kostenlose Testversion an.

Installieren von NGINX Open Source

Die meisten Linux-Distributionen und BSD-Varianten stellen NGINX Open Source in ihren Standardpaket-Repositories zur Verfügung, es handelt sich dabei jedoch normalerweise nicht um die neueste Version. Wir empfehlen, NGINX Open Source direkt von nginx.org herunterzuladen. Zum Hinzufügen des NGINX-Repository zum Ubuntu-Paketmanager ( apt ) sind nur wenige zusätzliche Schritte erforderlich.

Um NGINX Open Source zu installieren, folgen Sie diesen Schritten:

  1. Greifen Sie auf Ihr Terminal zu.

  2. Laden Sie den NGINX-Signaturschlüssel herunter:

    $ sudo wget http://nginx.org/keys/nginx_signing.key
  3. Fügen Sie den Schlüssel hinzu:

    $ sudo apt-key fügt nginx_signing.key hinzu
  4. Wechseln Sie in das Verzeichnis /etc/apt .

    $ cd /etc/apt
  5. Bearbeiten Sie die Datei sources.list und fügen Sie am Ende diesen Text an:

    deb http://nginx.org/packages/ubuntu focal nginx
    deb-src http://nginx.org/packages/ubuntu focal nginx

    Notiz: Das zentrale Schlüsselwort in jeder dieser Zeilen entspricht Ubuntu 20.04. Wenn Sie eine andere Version von Ubuntu verwenden, ersetzen Sie das erste Wort des Release -Codenamens (z. B. „Bionic“ für Ubuntu 18.04).

  6. Aktualisieren Sie die NGINX-Software:

    $ sudo apt-get update
  7. Installieren Sie NGINX:

    $ sudo apt-get installiere nginx
  8. Geben Sie Y ein, wenn Sie dazu aufgefordert werden.

  9. Starten Sie NGINX:

    $ sudo systemctl starte nginx.service
  10. Überprüfen Sie den Status:

    $ sudo systemctl status nginx.service
  11. Fahren Sie mit dem Öffnen Ihrer Webseite fort.

NGINX Plus installieren

  1. Wenn Sie NGINX Plus noch nicht haben, registrieren Sie sich für eine 30-tägige kostenlose Testversion .

  2. Wenn Sie die E-Mail-Benachrichtigung erhalten, dass Ihr Testabonnement verfügbar ist, befolgen Sie die bereitgestellten Anweisungen, um Ihr Sicherheitszertifikat, Ihren privaten Schlüssel und Ihr JWT herunterzuladen und dann NGINX Plus zu installieren.

  3. Wenn die Installation abgeschlossen ist und NGINX Plus ausgeführt wird, fahren Sie mit dem Öffnen Ihrer Webseite fort.

Öffnen Ihrer Webseite

Nachdem Sie die NGINX-Software gestartet haben, sehen Sie sich die Webseite an, die von NGINX und NGINX Plus standardmäßig bereitgestellt wird, bevor Sie sie für die Bereitstellung der Inhalte Ihrer Site konfigurieren. Gehen Sie folgendermaßen vor:

  1. Navigieren Sie zur Registerkarte „Instanzen“ auf dem EC2-Dashboard, falls Sie sich noch nicht dort befinden. (Eine Möglichkeit besteht darin, in der oberen Navigationsleiste der Konsole auf „Dienste“ , im Abschnitt „Compute“ auf „EC2“ und in der linken Navigationsspalte auf „Instanzen“ zu klicken.)

  2. Scrollen Sie in der Tabelle nach rechts, bis Sie die öffentliche IP-Adresse der Instanz in der Spalte „Öffentliche IPv4-Adresse“ sehen können (im Screenshot ist es 3.22.51.xxx). Wählen Sie die Adresse aus und kopieren Sie sie in den Einfügepuffer.

    Screenshot der Amazon EC2-Seite „Instanzen“ mit dem Feld „Öffentliche IPv4-Adresse“ für eine Instanz

  3. Öffnen Sie einen neuen Browser-Tab und fügen Sie die Adresse in die Adressleiste ein. Die standardmäßige Willkommensseite bei nginx! wird angezeigt und weist darauf hin, dass NGINX installiert und ausgeführt wird, aber noch nicht konfiguriert ist.

    Die Willkommensseite bestätigt, dass Ihr NGINX Reverse Proxy und Webserver einsatzbereit ist

Einrichten von Beispieldateien

Wenn Sie eine funktionierende Version von NGINX oder NGINX Plus installiert haben, ist es an der Zeit, sie sinnvoll zu nutzen! Beginnen Sie mit dem Einrichten einiger Dateien und Verzeichnisse.

  1. Wechseln Sie zu Ihrem Home-Verzeichnis, falls Sie sich noch nicht dort befinden. In den folgenden Anweisungen ist es /home/ubuntu .

  2. Erstellen Sie ein Verzeichnis mit dem Namen „public_html“ und wechseln Sie dorthin.

  3. Erstellen Sie im Verzeichnis public_html eine Datei namens index.html und ein Verzeichnis namens application1 .

  4. Erstellen Sie im Verzeichnis application1 eine Datei namens app1.html mit etwas Text darin.

  5. Wechseln Sie zurück zu Ihrem Home-Verzeichnis.

  6. Erstellen Sie ein Verzeichnis mit dem Namen data .

  7. Erstellen Sie im Datenverzeichnis ein Verzeichnis mit dem Namen images .

Bereitstellung von Seiten und Bildern

Unser erster Anwendungsfall für NGINX oder NGINX Plus besteht darin, Nutzern Seiten und Bilder über eine Webseite bereitzustellen.

  1. Wechseln Sie das Verzeichnis zu /etc/nginx/conf.d .

  2. Benennen Sie default.conf in default.conf.bak um, um zu verhindern, dass NGINX oder NGINX Plus es als Standardkonfigurationsdatei verwenden.

  3. Erstellen Sie eine Datei namens server1.conf mit dieser Konfiguration darin:

    Server { root /home/ubuntu/public_html;
    
    Standort /Anwendung1 { }
    
    Standort /Bilder { 
    root /home/ubuntu/Daten; 
    }
    }

    Dokumentation der Richtlinie: Standort , Stamm , Server

  4. Wechseln Sie das Verzeichnis zu ~/data/images .

  5. Suchen Sie ein Bild, das Sie bereitstellen möchten, und kopieren Sie es in das Verzeichnis ( ~/data/images ). Der folgende Befehl kopiert beispielsweise das NGINX-Logo :

    $ curl -o NGINX-logo.png https://www.nginx.com/wp-content/uploads/2021/11/NGINX-logo-2020.png
  6. NGINX oder NGINX Plus neu laden:

    $ sudo nginx -s neu laden
  7. Fordern Sie in einem Webbrowser das Bild unter dieser URL an, wobei NGINX-Server die öffentliche IP-Adresse Ihrer EC2-Instance ist:

    https:// NGINX-Server /images/NGINX-logo.png

  8. Greifen Sie auch auf die Anwendung zu und sehen Sie, was Sie erhalten:

    https:// NGINX-Server /Anwendung1/App1.html

Einrichten eines Proxyservers

Nachdem Sie nun über einen funktionierenden Webserver verfügen, ist es an der Zeit zu lernen, wie Sie ihn für die Datenverkehrsweiterleitung konfigurieren. Mit dieser Funktion können Sie den Datenverkehr an andere Server weiterleiten und sie ist ein wichtiger Schritt bei der Einrichtung des Lastenausgleichs. Gehen Sie folgendermaßen vor:

  1. Erstellen Sie im Verzeichnis ~/data ein Verzeichnis mit dem Namen server2 .

  2. Erstellen Sie im Verzeichnis server2 ein Verzeichnis mit dem Namen sampleApp .

  3. Erstellen Sie im Verzeichnis sampleApp eine Datei mit dem Namen index.html , die etwas Text enthält.

  4. Wechseln Sie das Verzeichnis zu /etc/nginx/conf.d .

  5. Erstellen Sie eine Datei namens server2.conf mit dieser Konfiguration darin:

    Server { listen 8080;
    root /home/ubuntu/data/server2;
    }

    Dokumentation der Anweisungen: listen , root , server

  6. Ändern Sie server1.conf , indem Sie im ersten Standortblock wie folgt eine Proxy_pass- Direktive hinzufügen:

    Server { root /home/ubuntu/public_html;
    
    Standort /Anwendung1 {
    Proxy-Passwort http://localhost:8080/sampleApp;
    }
    
    Standort /Bilder {
    root /home/ubuntu/Daten;
    }
    }

    Dokumentation der Richtlinie: Standort , Proxy-Passwort , Root , Server

  7. NGINX oder NGINX Plus neu laden:

    $ sudo nginx -s neu laden
  8. Rufen Sie die folgende URL in Ihrem Browser auf und beobachten Sie, was sich im Vergleich zum Aufruf unter „Serving Pages and Images“ geändert hat:

    https:// NGINX-Server /Anwendung1/index.html

Das ist also alles! Sie verfügen jetzt über eine funktionierende Ubuntu-Instanz mit NGINX, die als Proxyserver ausgeführt werden kann.

Anweisungen zum Bereitstellen von NGINX und NGINX Plus auf AWS für weitere Anwendungsfälle finden Sie in unseren Bereitstellungshandbüchern .

Abschluss

In diesem Tutorial haben Sie gelernt, wie Sie NGINX oder NGINX Plus einrichten, um Dateien und Bilder über das Internet bereitzustellen und als Reverse-Proxy zu fungieren. Wenn Sie NGINX eingehender erlernen möchten, bieten wir den Schulungskurs „NGINX Core“ ( mit Lehrer oder auf Abruf ) an, der die Themen aus diesem Tutorial sowie weitere Grundlagen der Webbereitstellung und Anwendungsbereitstellung abdeckt, einschließlich Lastausgleich, standortbasiertes Routing und Sicherheit. Sehen Sie sich auch die Dokumentation unter nginx.org und den NGINX Plus Admin Guide an. Sofern nicht anders angegeben, gelten die Artikel sowohl für NGINX Open Source als auch für NGINX Plus.


„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."