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:
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.
Auf Macs können Sie für alle Schritte dieses Tutorials das integrierte Terminaltool
verwenden.
Klicken Sie auf das Lupensymbol am rechten Ende der oberen Leiste auf dem Bildschirm.
Geben Sie „Terminal“
in das Popup-Fenster ein und drücken Sie die Eingabetaste. Es öffnet sich ein separates Terminalfenster.
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.
Rufen Sie die PUTTY-Downloadseite auf.
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.
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.
Melden Sie sich auf der AWS-Startseite bei der (AWS-Management-)Konsole an oder erstellen Sie bei Bedarf zunächst ein neues Konto.
Klicken Sie in der Titelleiste der Konsole auf „Dienste“ und dann im Abschnitt „Compute“ auf „EC2“ .
Klicken Sie auf der sich öffnenden EC2-Dashboard-Seite auf die Schaltfläche „Instanz starten“ .
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.
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.
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.
Klicken Sie auf 6. Konfigurieren Sie die Sicherheitsgruppe oben auf der Seite.
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“ .
Klicken Sie auf der Seite „Schritt 7“ unten auf die Schaltfläche „Starten“ .
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“ .
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 .
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.
Klicken Sie unten auf der Seite „Startstatus“ auf die Schaltfläche „Instanzen anzeigen“ .
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“ .
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 .
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.
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:
Laden Sie den NGINX-Signaturschlüssel herunter:
$ sudo wget http://nginx.org/keys/nginx_signing.key
Fügen Sie den Schlüssel hinzu:
$ sudo apt-key fügt nginx_signing.key hinzu
Wechseln Sie in das Verzeichnis /etc/apt .
$ cd /etc/apt
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).
Aktualisieren Sie die NGINX-Software:
$ sudo apt-get update
Installieren Sie NGINX:
$ sudo apt-get installiere nginx
Geben Sie Y
ein, wenn Sie dazu aufgefordert werden.
Starten Sie NGINX:
$ sudo systemctl starte nginx.service
Überprüfen Sie den Status:
$ sudo systemctl status nginx.service
Fahren Sie mit dem Öffnen Ihrer Webseite fort.
Wenn Sie NGINX Plus noch nicht haben, registrieren Sie sich für eine 30-tägige kostenlose Testversion .
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.
Wenn die Installation abgeschlossen ist und NGINX Plus ausgeführt wird, fahren Sie mit dem Öffnen Ihrer Webseite fort.
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:
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.)
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.
Ö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.
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.
Wechseln Sie zu Ihrem Home-Verzeichnis, falls Sie sich noch nicht dort befinden. In den folgenden Anweisungen ist es /home/ubuntu .
Erstellen Sie ein Verzeichnis mit dem Namen „public_html“ und wechseln Sie dorthin.
Erstellen Sie im Verzeichnis public_html eine Datei namens index.html und ein Verzeichnis namens application1 .
Erstellen Sie im Verzeichnis application1 eine Datei namens app1.html mit etwas Text darin.
Wechseln Sie zurück zu Ihrem Home-Verzeichnis.
Erstellen Sie ein Verzeichnis mit dem Namen data .
Erstellen Sie im Datenverzeichnis ein Verzeichnis mit dem Namen images .
Unser erster Anwendungsfall für NGINX oder NGINX Plus besteht darin, Nutzern Seiten und Bilder über eine Webseite bereitzustellen.
Wechseln Sie das Verzeichnis zu /etc/nginx/conf.d .
Benennen Sie default.conf in default.conf.bak um, um zu verhindern, dass NGINX oder NGINX Plus es als Standardkonfigurationsdatei verwenden.
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;
}
}
Wechseln Sie das Verzeichnis zu ~/data/images .
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
NGINX oder NGINX Plus neu laden:
$ sudo nginx -s neu laden
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
Greifen Sie auch auf die Anwendung zu und sehen Sie, was Sie erhalten:
https:// NGINX-Server /Anwendung1/App1.html
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:
Erstellen Sie im Verzeichnis ~/data ein Verzeichnis mit dem Namen server2 .
Erstellen Sie im Verzeichnis server2 ein Verzeichnis mit dem Namen sampleApp .
Erstellen Sie im Verzeichnis sampleApp eine Datei mit dem Namen index.html , die etwas Text enthält.
Wechseln Sie das Verzeichnis zu /etc/nginx/conf.d .
Erstellen Sie eine Datei namens server2.conf mit dieser Konfiguration darin:
Server { listen 8080;
root /home/ubuntu/data/server2;
}
Ä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
NGINX oder NGINX Plus neu laden:
$ sudo nginx -s neu laden
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 .
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."