So richten Sie den Nginx -Webserver auf Ubuntu 18 ein.04 Bionic Beaver Linux

So richten Sie den Nginx -Webserver auf Ubuntu 18 ein.04 Bionic Beaver Linux

Zielsetzung

Erfahren Sie, wie Sie den NGINX -Webserver auf Ubuntu 18 installieren und konfigurieren.04 Bionischer Biber

Anforderungen

  • Wurzelberechtigungen

Konventionen

  • # - Erfordert, dass gegebene Linux -Befehle entweder mit Root -Berechtigungen ausgeführt werden müssen
    direkt als Stammbenutzer oder durch Verwendung von sudo Befehl
  • $ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Andere Versionen dieses Tutorials

Ubuntu 20.04 (fokale Fossa)

Einführung

Der Nginx -Webserver ist zusammen mit Apache einer der bekanntesten und verwendeten Webserver der Welt. Es ist im Allgemeinen weniger ressourcenjungry als Apache und kann auch als Reverse-Proxy verwendet werden.

In diesem Tutorial sehen wir, wie Sie den Nginx -Webserver auf Ubuntu 18 installieren und konfigurieren.04 Bionischer Biber.

Schritt 1 - Installation

Installieren von Nginx auf Ubuntu 18.04 ist sehr einfach, wir müssen nur verwenden apt-get:

$ sudo APT-Get Update && sudo apt-Get Install nginx

Der erste Befehl synchronisiert unsere Maschine mit Ubuntu -Repositories, während der zweite das Nginx -Paket tatsächlich installiert. Nur wenige Sekunden und der Server wird auf unserem System installiert. Die Installationsskripte kümmern sich auch darum, den Nginx -Dienst zu starten.

Wir können leicht überprüfen, ob der Dienst mit dem folgenden Linux -Befehl ausgeführt wird:

$ sudo systemctl is-active nginx

Der obige Befehl wird zurückgegeben aktiv Wenn der Dienst abgelaufen ist: Wenn wir den Browser auf die Serveradresse verweisen oder auf Lokalhost Wenn wir von der Maschine selbst aus operieren, sollten wir die nginx -Begrüßungsseite visualisieren:

Nginx willkommen Seite

Schritt 2 - Firewall -Setup

Damit unser Server Seiten für andere Maschinen servieren kann, müssen wir die Firewall einrichten, damit eingehender Verkehr über den Port 80 (der Standard) und Port 443 Wenn wir das verwenden wollen https Protokoll. Der genaue Befehl, der ausgeführt wird, um dies zu erreichen UFW läuft, da es der Standard auf Ubuntu ist.

Zunächst überprüfen wir, dass die Firewall aktiv ist:

$ sudo UFW Status

Wenn dies nicht der Fall ist, können Sie es aktivieren, indem Sie den folgenden Linux -Befehl ausführen:

$ sudo ufw aktivieren

Seien Sie jedoch vorsichtig, wenn das System, wie das System Sie benachrichtigt, die Aktivierung der Firewall derzeit bestehende Verbindungen zerstören könnte. Um eingehende Verbindungen über Port 80 zu ermöglichen, sollten wir ausführen:

$ sudo ufw erlauben 80/tcp

Um Port 443 stattdessen zuzulassen:

$ sudo ufw erlauben 443/tcp

Um den aktuellen Status der Firewall zu visualisieren, können wir schließlich ausführen:

$ sudo UFW Status nummerierter Status: aktiv zu Aktion von------- ---- [1] 443/TCP in Anywhere [2] 80/TCP in Anwo [3] 443/TCP (V6) zulassen. In irgendwohin (v6) [4] 80/TCP (V6) in AnyTy (V6) erlauben (v6) 

Wie Sie sehen können, gibt der obige Befehl uns einen Überblick über die konfigurierten Regeln, die nach Nummer indiziert werden.

Nginx -Serverblöcke (virtuelle Hosts)

Nginx -Serverblöcke sind das Äquivalent von Apache VirtualHosts und werden verwendet, um mehr als eine Site auf demselben Servergerät auszuführen. Bei einer Standardinstallation von NginX finden wir den Standard Serverblock Ist /etc/nginx/sites-verfügbare/standardmäßig. Schauen wir es uns an:

# Standard -Serverkonfiguration # Server Listening 80 default_server; Hören [::]: 80 default_server; [… .] root/var/www/html; # Index hinzufügen.PHP zur Liste, wenn Sie den PHP -Index verwenden.HTML -Index.HTM -Index.nginx-debian.html; Servername _; Speicherort /  # Versuchen Sie zuerst, die Anfrage als Datei zu stellen, dann # als Verzeichnis, dann zurück in die Anzeige eines 404. try_files $ uri $ uri/ = 404;  [… .] 
Kopieren

Die oben genannte ist eine optimierte Version (ich habe gerade Kommentare entfernt) des Standard -Nginx -Serverblocks auf Ubuntu 18.04. Wie Sie sehen können, endet jede Richtlinie mit einem Semikolon. Das erste, was wir im Inneren sehen Server Abschnitt in den Zeilen 4-5 sind die Hören Richtlinien. Der erste ist für IPv4 während der zweite für IPv6. Eigentlich könnte dies als verkürzt werden als Hören Sie [::]: 80 IPv6only = Off.

Der default_server Die Anweisung legt diesen Serverblock als Standard fest, was bedeutet, dass er verwendet wird, wenn keine anderen Konfigurationen mit einem angeforderten Namen übereinstimmen. Diese Anweisung kann jeweils nur in einem Serverblock verwendet werden.

Der Wurzel Die Richtlinie in Zeile 8 legt den Pfad zum Stammverzeichnis für die Site fest, die vom Block bedient wird: Es ist im Grunde das Äquivalent zu Apache's Dokument Root.

Der Index Die Richtlinie in Zeile 11 definiert die Dateien, die als Index verwendet werden können. Die Dateien werden in der Reihenfolge überprüft.

In Zeile 13 die Servername Die Anweisung wird verwendet, um den Servernamen zu definieren, der der Konfiguration zugeordnet werden soll. Wenn Sie den Servernamen definieren, ist es möglich, Platzhalter und reguläre Ausdrücke zu verwenden. In diesem Fall ist der bereitgestellte Wert _: Dies wird verwendet, weil es ein ungültiger Wert ist und niemals mit einem echten Hostnamen übereinstimmt (denken Sie daran, dass diese Konfiguration ein Catch-All ist).

Schließlich haben wir das Standort Richtlinie in Zeile 15: Sie ändert die Art und Weise, wie eine Anforderung im Serverblock bearbeitet wird. In diesem Fall ist der Pfad, der für die Anweisungen abgestimmt ist, die stattfinden, und ist /. Der Teil des zu Matching der URI ist derjenige nach dem Hostsegment.

In der Stelle „Strophe“ können wir in Zeile 18 eine andere Richtlinie beobachten, try_files: Es überprüft das Vorhandensein von Dateien in der angegebenen Reihenfolge, wobei die erste gefunden wurde, um die Anfrage zu erfüllen. In diesem Fall versucht es, wie aus dem Kommentar im Abschnitt vorgeschlagen wurde. Wenn nichts die Anfrage erfüllt, wird dem Benutzer eine 404 -Seite angezeigt. Beachten Sie, dass der Antrag als die dargestellt wird $ Uri Variable, und was es als Verzeichnis definiert, ist der nachfolgende Schrägstrich.



Definieren eines benutzerdefinierten Serverblocks

Wir sollten jetzt einen benutzerdefinierten Serverblock erstellen, um eine HTML -Site zu bedienen. Als Erstes erstellen wir das Verzeichnis, das als Dokument -Root für den Block dient. Nennen wir es Beispiel:

$ sudo mkdir/var/www/Beispiel

Wir müssen auch einen Index erstellen.Die HTML -Seite wird angezeigt, wenn wir die Website erreichen:

$ echo "Willkommen zum Beispiel!"| sudo tee/var/www/Beispiel/Index.html> /dev /null

Sobald dies erledigt ist, können wir einen Serverblock in der erstellen /etc/nginx/seites-verfügbar Verzeichnis für Konsistenz werden wir es als „Beispiel“ nennen:

Server Listen 80; root/var/www/Beispiel; Indexindex.html; server_name www.Beispiel.Lan;  
Kopieren

Um zu testen, dass unsere Konfiguration korrekt ist und keinen Syntaxfehler enthält, können wir den folgenden Linux -Befehl ausführen:

$ sudo nginx -t

Da wir jetzt keinen DNS -Server haben, um eine Anfrage an unseren Server mit dem angegebenen Namen zu senden, müssen wir einen Eintrag in die hinzufügen /etc/hosts Datei der Client -Maschine. In diesem Fall ist die Adresse des Geräts, die ich als Server verwende (in einer virtuellen Hostumgebung) 192.168.122.89, Deshalb:

# Die Client /etc /hostet Datei [… .] 192.168.122.89 www.Beispiel.Lan 
Kopieren

Bevor wir unseren neuen Serverblock aktivieren, haben wir die Möglichkeit, zu überprüfen, ob die Standardkonfiguration tatsächlich als Standard-Catchall funktioniert. Wenn wir jetzt zu „www navigieren.Beispiel.LAN “vom Client -Computer, in dem wir gerade den Hosts -Eintrag hinzugefügt haben, können wir feststellen, dass der Server auf unsere Anfrage mit der Standard -Nginx -Seite auf unsere Anfrage antwortet (da der neue Block noch nicht aktiviert ist).

Um unseren Serverblock zu aktivieren, müssen wir aus der Konfiguration, in der wir geschrieben haben, einen Symlink erstellen /etc/nginx/seites-verfügbar Zu /etc/nginx/sites-fähig:

$ sudo ln -s/etc/nginx/sites-verfügbare/Beispiel/etc/nginx/sites-fähig

Danach müssen wir Nginx neu starten:

$ sudo systemctl starten nginx neu

Zu diesem Zeitpunkt navigieren wir zu „www.Beispiel.Lan “, wir sollten unsere nicht sehr komplizierte Seite sehen:

Beispiel Standardseite

Mit SSL

Um SSL zu verwenden, haben wir im Grunde zwei Optionen: Erhalten Sie ein Zertifikat von einer Zertifikatbehörde oder verwenden Sie ein selbstsigniertes Zertifikat. In unserem ersten Beispiel werden wir selbst ein Zertifikat erstellen. Führen Sie den folgenden Linux -Befehl aus, um fortzufahren:

$ sudo opensensl req -x509 \ -days 365 \ -Sha256 \ -newKey RSA: 2048 \ -nodes \ -keout/etc/ssl/privat/Beispiel.Key \ -out/etc/ssl/certs/Beispiel -Zertifikat.Pem 
Kopieren

Mit diesem Befehl haben wir ein selbstsigniertes Zertifikat generiert, das für 365 Tage gültig ist, und einen 2048 -Bit -RSA -Schlüssel. Das Zertifikat und der Schlüssel werden in gespeichert /etc/SSL/certs/Beispiel-Zertifikat.Pem Und /etc/ssl/privat/Beispiel.Taste Dateien jeweils. Beantworten Sie einfach die Fragen, die gestellt werden, und achten Sie beim Eingeben besondere Aufmerksamkeit Fqdn: Es muss mit der Domain übereinstimmen, die das Zertifikat verwendet, damit es richtig funktioniert.

Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatanfrage aufgenommen werden. Was Sie eingeben möchten, ist der als als angesehene Name oder ein DN bezeichnet. Es gibt einige Felder, aber Sie können einige Felder leer lassen, es gibt einen Standardwert, wenn Sie eingeben. '.', Das Feld wird leer gelassen. ----- Ländername (2 Briefcode) [AU]: IT-Name oder Provinzname (Vollname) [SOND-STATE]: Lokalitätsname (z. B. Stadt) []: Milan-Organisation Name (z. :Schaden inc. Name der Organisationseinheit (z. B. Abschnitt) []: gebräuchlicher Name (e.G. Server FQDN oder Ihr Name) []: www.Beispiel.LAN -E -Mail -Adresse []: 

Nachdem wir unser Zertifikat und Schlüssel haben, müssen wir unsere Server -Block -Konfiguration ändern, damit es wird:

Server Hören 443 SSL; server_name www.Beispiel.Lan; SSL_Certificate/etc/ssl/certs/Beispielzert.Pem; ssl_certificate_key/etc/ssl/privat/Beispiel.Taste; root/var/www/Beispiel; Indexindex.html;  
Kopieren

Wie Sie sehen können, haben wir das geändert Hören Richtlinie in Zeile 2 mit Port 443 und auch die Aktivierung der SSL Parameter, dann haben wir zwei neue Anweisungen in den Zeilen 4-5 hinzugefügt: SSL_Certificate Und ssl_certificate_key, Welche zeigt jeweils auf das Zertifikat und den wichtigsten Standort des Zertifikats.

Nach dem Neustart des Nginx -Dienstes, wenn wir jetzt navigieren zu https: // www.Beispiel.Lan Wir sollten die vom Browser ausgestellte Warnung sehen, da das Zertifikat selbst signiert ist. Trotzdem funktionieren unsere Konfigurationen und wir verwenden eine verschlüsselte Verbindung:

Ungültige Zertifikatswarnung

Verwenden von Let Let Let Let Let Let Let Let Let Let Let Let Let Let Let Let Let Let Let Let Los

Die Alternative zu selbstsignierten Zertifikaten sind Zertifikate, die von einem verifizierten Dritten ausgestellt wurden. Wir können zwar ein Zertifikat von einer Zertifikatbehörde kaufen, aber wir haben auch die Möglichkeit, "Lets Verschlüsseln zu verwenden!”.

"Lass uns verschlüsseln" ist selbst eine kostenlose und offene Zertifikatsbehörde, mit der wir automatisch ein vom Browser vertrauenswürdiger Zertifikat erhalten können GIPFEL Protokoll und ein Zertifikatverwaltungsagent, der auf dem Server ausgeführt wird. Die einzige Bedingung ist in der Lage zu zeigen, dass wir die Kontrolle über die Domäne haben, für die wir das Zertifikat verwenden möchten.

Um den Dienst zu nutzen, müssen Sie als erstes die installieren certbot ACME-Client und das Nginx-spezifische Plugin:

$ sudo APT-Get Update && apt-Get Installieren Sie Certbot Python-CertBot-Nginx

Ein Zertifikat zu erhalten ist recht einfach:

$ sudo certbot -nginx -m -d 

Damit dies funktioniert. Certbot fordert uns auf, einige Fragen zu beantworten, um die Site -Konfiguration zu optimieren. Wenn alles gut geht, wird das Zertifikat und der Schlüssel in die gespeichert /etc/letSencrypt/live/ Verzeichnis. Certbot wendet auch die erforderlichen Änderungen am Serverblock an und lädt den Dienst neu.

Schlussfolgerungen

Wir haben den Nginx -Webserver auf Ubuntu 18 installiert.04, wie man die erforderlichen Firewall -Ports öffnet, den Standard -Ubuntu -Serverblock untersucht und eine benutzerdefinierte Konfiguration erstellt. Schließlich haben wir ein selbstsigniertes Zertifikat generiert und die erforderlichen Änderungen am Serverblock implementiert, um das HTTPS-Protokoll zu verwenden.

Als Alternative haben wir die Implementierung "Let Let Let Let Let Enrypt" überlegt!”, Die uns ein anerkanntes Zertifikat ohne Kosten geben können. Zögern Sie nicht, Fragen zu stellen und die offizielle NGINX -Dokumentation für detailliertere Informationen zu besuchen.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
  • Ubuntu 20.04 Leitfaden
  • Ubuntu 20.04 Hadoop
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Die 8 besten Ubuntu -Desktop -Umgebungen (20.04 fokale Fossa…
  • FTP -Clientliste und -installation auf Ubuntu 20.04 Linux…
  • Ubuntu 20.04: WordPress mit Nginx -Installation
  • So migrieren Sie Apache in Nginx, indem Sie virtuelleHosts in…