Wenn Sie mit dem Schreiben von Code für Ihre Website oder Web-App fertig sind, müssen Sie ihn an einem Ort ablegen, an dem er ausgeführt und Ihren Benutzern Inhalte bereitgestellt werden können. Dies ist, wo Web-Server-Software kommt in. Eine einfache Google-Suche nach Webserver-Software bringt Ihnen eine ganze Liste von Lösungen zur Auswahl.
In diesem Tutorial konzentrieren wir uns auf Nginx; und speziell, wie Sie es auf Ubuntu 18.04 laufen lassen können. Nginx ist eine der beliebtesten Webserver-Software der Welt. Eigentlich, es nimmt einen Platz in den Top Fünf auf Opensource.com rankings. Es ist dafür verantwortlich, die Verfügbarkeit und Skalierbarkeit der Websites mit dem höchsten Datenverkehr im Internet sicherzustellen. Es garantiert Sicherheit und Sie können es als Reverse-Proxy verwenden. Wie können Sie Nginx unter Ubuntu 18.04 installieren?
Voraussetzungen
Natürlich haben Sie bereits einen Computer, auf dem Ubuntu 18.0.4 ausgeführt wird. und Sie haben einen Nicht-Root-Benutzer mit Sudo-Rechten. Wenn nicht, gehen Sie zu diesem Link, um Ubuntu 18.0.4 herunterzuladen, und folgen Sie dann den Anleitungen zur Ersteinrichtung des Servers mit Ubuntu, um ein Nicht-Root-Konto zu erstellen. Sobald Sie ein Konto haben, müssen Sie sich als Nicht-Root-Benutzer anmelden, und dann können wir mit den nächsten Schritten fortfahren.
Schritt 1 – Nginx installieren
Ubuntu basiert auf Debian. Um deb-Pakete über die Befehlszeile zu installieren, können Sie entweder apt- oder dpkg-Befehle verwenden. Wir werden den Befehl apt verwenden, da er beliebter ist. Mit dem Befehl Apt können Benutzer Pakete installieren, die in den Standard-Repositorys der von ihnen ausgeführten Linux-Distribution verfügbar sind. In diesem Fall haben wir Nginx in den Standard-Repositorys von Ubuntu 18.04 verfügbar, sodass wir fortfahren können. Als Faustregel gilt, dass Sie jetzt und bei der Installation eines Pakets auf einer Linux-Distribution zuerst aktualisieren müssen. Geben Sie den folgenden Befehl in das Terminal ein, um zu aktualisieren:
sudo apt update
Geben Sie dann zur Installation von Nginx den folgenden Befehl ein:
sudo apt install nginx
Befolgen Sie die Anweisungen, und Nginx wird zusammen mit den erforderlichen Abhängigkeiten auf Ihrem Server installiert.
Schritt 2 – Passen Sie die Firewall an
Das Standard-Firewall-Konfigurationstool für Ubuntu ist UFW. UFW steht für unkomplizierte Firewall und wurde entwickelt, um die Firewall-Konfiguration zu vereinfachen. Standardmäßig registriert sich Nginx nach der Installation als Dienst bei UFW, was die Konfiguration des Nginx-Zugriffs erleichtert. Aktivieren Sie zuerst die UFW, indem Sie den folgenden Befehl eingeben:
sudo ufw enable
Der folgende Befehl listet die Anwendungskonfiguration auf, die UFW zulässt:
sudo ufw app list
Hier ist ein Screenshot, wie Ihr Terminal aussehen könnte:
Es werden 3 für Nginx verfügbare Profile angezeigt. Sie werden im Folgenden beschrieben:
- Nginx Full – es öffnet sowohl Port 80 als auch 443. Port 80 ist für normalen / unverschlüsselten Datenverkehr, dh http. Port 443 ist für TLS / SSL-verschlüsselten Datenverkehr. dh https.
- Nginx HTTP – öffnet nur Port 80.
- Nginx HTTPS – öffnet nur Port 443.
Als Empfehlung sollten Sie nur das Profil aktivieren, das den Datenverkehr zulässt, den Sie für Ihre Webanwendung konfiguriert haben. In diesem Fall verwenden wir Nginx HTTP (Port 80), da wir SSL nicht konfiguriert haben. Der folgende Befehl aktiviert dies:
sudo ufw allow 'Nginx HTTP'sudo ufw allow 'OpenSSH'
Um die Änderung zu überprüfen, geben Sie den folgenden Befehl ein:
sudo ufw status
Ihr Terminal sollte etwas Ähnliches wie das Screengrab unten anzeigen. Beachten Sie, dass der HTTP-Verkehr überall erlaubt ist:
Schritt 3 – Überprüfen Ihres Webservers
Nach der Installation von Nginx unter Ubuntu 18.04 wird der Dienst automatisch gestartet. Sie können dies testen, indem Sie den folgenden Befehl in Ihr Terminal eingeben:
systemctl status nginx
Ihr Terminal sollte Folgendes anzeigen:
Dies zeigt an, dass der Dienst automatisch gestartet wurde und ausgeführt wird. Wie Sie bereits wissen, besteht der Hauptzweck von Serversoftware darin, Inhalte bereitzustellen. Um diesen Zweck zu testen, müssen Sie eine Seite anfordern. Sie können dies tun, indem Sie über den Browser auf die IP-Adresse Ihres Servers zugreifen, auf der die Standard-Nginx-Zielseite angezeigt werden soll. Wenn Sie die IP-Adresse Ihres Servers nicht kennen, finden Sie unten einige Befehle, die Ihnen helfen, sie zu erhalten:
ip addr show ens3 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Unten finden Sie einen weiteren Befehl, den Sie verwenden können. Es gibt Ihnen die öffentliche IP-Adresse, wie Sie von Orten im Internet aus gesehen wird:
curl -4 icanhazip.com
Der erste Befehl gibt Ihnen eine Adresse, wie im Terminal unten gezeigt. Als nächstes kopieren und testen Sie es in Ihrem Browser:
Ihr Browser lädt die Standard-Nginx-Seite, die wie der folgende Screenshot aussieht. Es zeigt, dass Ihr Nginx-Server tatsächlich ausgeführt wird:
Schritt 4 – Grundlegende Nginx-Verwaltungsbefehle
Sie haben bereits den Befehl gesehen, der den Status von Nginx überprüft:
systemctl status nginx
Nun, da wir den Server zum Laufen haben, sind hier einige weitere Befehle, die Sie zur Verwaltung des Nginx-Dienstes zur Hand haben sollten. Diese Befehle funktionieren nicht nur unter Ubuntu 18.04, sondern auch unter allen Linux-Distributionen.
Um den Server zu stoppen, geben Sie den folgenden Befehl ein:
sudo systemctl stop nginx
Um den Server zu starten, geben Sie den folgenden Befehl ein:
sudo systemctl start nginx
Wenn Sie wesentliche Änderungen wie das Ändern von Ports oder Schnittstellen vornehmen, müssen Sie den Webserver neu starten. Der folgende Befehl startet den Server neu:
sudo systemctl restart nginx
Wenn Sie kleinere Konfigurationsänderungen wie das Bearbeiten von Serverblöcken vornehmen, kann Nginx neu geladen werden, ohne Verbindungen zu unterbrechen. Hier ist der Befehl zum Neuladen:
sudo systemctl reload nginx
Nginx startet den Server automatisch, wenn Ihr Ubuntu-Betriebssystem hochfährt. Wenn Sie diese Einstellung jedoch ändern möchten, können Sie den Dienst deaktivieren, indem Sie den folgenden Befehl eingeben:
sudo systemctl disable nginx
Und Sie können den Dienst wieder aktivieren, damit er beim nächsten Neustart Ihres Computers automatisch gestartet wird, indem Sie:
sudo systemctl enable nginx
Schritt 5 – Einrichten von Serverblöcken
Möglicherweise möchten Sie mehrere Websites (Domains) auf einem Webserver hosten. Serverblöcke würden Ihnen helfen, dies zu erreichen. Wenn Sie Apache bereits verwendet haben, können Serverblöcke in Nginx mit Apache-Vhosts verglichen werden. Standardmäßig wird Nginx mit einem Serverblock geliefert, der so konfiguriert ist, dass er aus dem Verzeichnis / var / www / html ausgeführt wird, das die Standard-Nginx-Seite in einem Abschnitt oben geladen hat. Dieser Serverblock ist in Ordnung, wenn eine einzelne Site ausgeführt wird. Das Ausführen vieler Websites ist jedoch ein Problem.
Wir möchten eine andere Site auf demselben Server erstellen und sie aufrufen samplesite.com (dies ist nur ein Beispiel, Sie sollten es durch Ihren eigenen Domainnamen ersetzen).
Erstellen Sie im Verzeichnis /var/www/ein anderes Verzeichnis für samplesite.com . Belassen Sie die Standardeinstellung / var / www / html, um Anfragen zu bearbeiten, die keiner anderen Site entsprechen. Der folgende Befehl erstellt das Verzeichnis für samplesite.com wie wir beschrieben haben. Das Flag –p soll sicherstellen, dass der Befehl alle erforderlichen übergeordneten Verzeichnisse erstellt:
sudo mkdir -p /var/www/samplesite.com/html
Um den Zugriff auf das Verzeichnis zu ermöglichen, müssen Sie den Besitz mit der Umgebungsvariablen $USER zuweisen:
sudo chown -R $USER:$USER /var/www/samplesite.com/html
Geben Sie den folgenden Befehl ein, um zu überprüfen, ob die Berechtigungen für Ihr Webverzeichnis korrekt sind:
sudo chmod -R 755 /var/www/samplesite.com
Als nächstes versuchen wir, ein einfaches index.html in der samplesite.com verzeichnis. Sie können den Nano-Editor wie folgt öffnen:
nano /var/www/samplesite.com/html/index.html
Der Befehl öffnet einen Editor in Ihrem Terminal, fügen Sie den folgenden Code hinzu:
<html><head><title>Welcome to samplesite.com!</title></head><body><h1>Success! The samplesite.com server block is running fine!</h1></body></html>
Geben Sie Strg + O ein und drücken Sie die Eingabetaste, um die Datei zu speichern. Geben Sie Strg + X ein, um den Editor zu schließen.
Danach können Sie den Serverblock erstellen. Anstatt die Standardkonfigurationsdatei zu bearbeiten und zu überladen, wird empfohlen, eine neue unter /etc/nginx/sites-available/samplesite.com zu erstellen. Geben Sie den folgenden Befehl ein, um den Nano-Editor zu öffnen:
sudo nano /etc/nginx/sites-available/samplesite.com
Geben Sie im Editor den folgenden Code ein, der für das von Ihnen erstellte Verzeichnis geändert wurde. Beachten Sie, dass der Stammname und der Servername mit unserem Verzeichnis und der Domäne übereinstimmen, die wir bereitstellen möchten:
server { listen IP_ADDRESS:80; listen :80; root /var/www/samplesite.com/html; index index.html index.htm index.nginx-debian.html; server_name samplesite.com samplesite.com; location / { try_files $uri $uri/ =404; }}
Als nächstes speichern und schließen Sie die Datei.
Nginx liest Konfigurationsdateien aus dem sites-enabled Verzeichnis, daher müssen Sie einen Symlink von Ihrem neuen Serverblock zum sites-enabled Verzeichnis erstellen. Der folgende Befehl wird das tun:
sudo ln -s /etc/nginx/sites-available/samplesite.com /etc/nginx/sites-enabled/
Sie haben jetzt zwei Serverblöcke, die zwei Websites auf einem Nginx-Server bedienen können.
Der folgende Befehl antwortet auf Anforderungen in den Domänen samplesite.com und www.samplesite.com.
curl samplesite.com
Und der Standard antwortet auf alle Anfragen, die Port 80 treffen und nicht mit einem der beiden Serverblöcke übereinstimmen:Ihr Nginx-Server kann wahrscheinlich ein Hash-Bucket-Speicherproblem haben, wenn Sie zusätzliche Serverblöcke hinzufügen. Um dies zu vermeiden, sollten Sie eine einzelne Datei im Nginx anpassen.conf-Datei. Als nächstes öffnen Sie die Datei mit dem Nano-Editor:
sudo nano /etc/nginx/nginx.conf
Suchen Sie dann die Direktive: server_names_hash_bucket_size und entfernen Sie das # -Symbol, um es zu kommentieren, so sieht es so aus:
http { server_names_hash_bucket_size 64;}
Speichern und schließen Sie als nächstes die Datei.
Um zu testen, ob alle Ihre Nginx-Dateien fehlerfrei sind, sollten Sie den folgenden Befehl eingeben:
sudo nginx -t
Wenn alles in Ordnung ist, sollten Sie Folgendes sehen:
Damit die Konfigurationsänderungen wirksam werden, müssen Sie zuerst den Nginx-Server mit dem folgenden Befehl starten:
sudo systemctl restart nginx
Geben Sie nun die Domain ein und Sie sollten die von uns erstellte HTML-Seite sehen.
Schritt 6 – Wichtige Nginx-Dateien und -Verzeichnisse, die Sie kennen sollten
- Hauptinhaltsverzeichnis
–/var/www/html: Die Standard-Nginx-Seite wird in diesem Verzeichnis gespeichert. Es ist der tatsächliche Inhalt, den Sie sehen, wenn Sie auf die IP-Adresse Ihres Servers zugreifen. Sie können dieses Verhalten ändern, indem Sie die Nginx-Konfigurationsdateien ändern.
- Nginx–Konfigurationsverzeichnisse
– /etc/nginx: Das Hauptverzeichnis mit allen Nginx-Konfigurationsdateien.
– /etc/nginx/nginx.conf: Die Nginx-Hauptkonfigurationsdatei, die geändert werden kann, um globale Änderungen auf dem Nginx-Server vorzunehmen.
– /etc/nginx/sites-available/: Dies ist das Verzeichnis, in dem Sie Serverblöcke pro Site speichern. Alle Serverblöcke befinden sich in diesem Ordner. Ein Symlink verknüpft sie mit dem Verzeichnis sites-enabled . Wenn wir den Inhalt dieses Directors auflisten, sollten wir den von uns erstellten Serverblock sowie den Standard-Nginx-Serverblock sehen.
– /etc/nginx/sites-enabled/: In diesem Verzeichnis befinden sich die Serverblöcke „enable per-site“. Sie sind mit den tatsächlichen Konfigurationsdateien im Verzeichnis sites-available verknüpft.
– /etc/nginx/snippets/: Das Verzeichnis, in dem Sie Konfigurations-Snippets speichern, die in anderen Konfigurationen enthalten sein können – z. sich wiederholende Konfigurations-Snippets.
- Serverprotokolle
– /var/log/nginx/access.log: Diese Datei zeichnet jede Anfrage auf, die Ihren Server erreicht, es sei denn, Sie haben Nginx so konfiguriert, dass es in einer anderen Datei gespeichert wird oder etwas anderes tut.
– /var/log/nginx/Fehler.log: Diese Datei zeichnet alle Nginx-Fehler auf. Hier kommen Sie zur Fehlerbehebung, wenn Ihr Server nicht wie erwartet ausgeführt wird.
Fazit
Wir sind am Ende der Reise angelangt. Sie haben Nginx unter Ubuntu 18 installiert.04, konfiguriert firewalls, konfiguriert server blöcke und gewährleistet die websites sind zugänglich in ihrem browser. Herzlichen Glückwunsch! Jetzt liegt es an Ihnen, herauszufinden, welche Inhalte Sie Ihren Benutzern bereitstellen möchten.
Viel Spaß beim Rechnen!