Nginx ist ein kostenloser und quelloffener Webserver, der sowohl statische als auch dynamische Anwendungen oder Dienste bereitstellen kann. Er wird häufig als Webserver, Load Balancer, Reverse Proxy oder HTTP-Cache eingesetzt und lässt sich nahtlos in bestehende Anwendungen integrieren oder stellt Inhalte direkt über die IP-Adresse oder Domain des Servers bereit.
Diese Anleitung beschreibt die Schritte zur Einrichtung von Nginx auf Ubuntu 20.04 sowie zur Konfiguration einer Beispiel-Webanwendung für optimale Leistung.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Folgendes vorhanden ist:
- Ein Ubuntu 20.04 Server.
- Ein neuer A-Record für Ihre Domain, der auf die IP-Adresse des Servers zeigt.
- SSH-Zugriff als Nicht-Root-Benutzer mit Sudo-Rechten.
- Ein aktualisierter Server mit den neuesten Paketen.
Passende Infrastruktur bei centron
Ubuntu-Server ohne eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
Nginx auf Ubuntu 20.04 installieren
Die aktuelle Version von Nginx ist in den Standard-APT-Repositories von Ubuntu 20.04 verfügbar. Führen Sie folgende Schritte aus, um Ihre Pakete zu aktualisieren und Nginx zu installieren.
Paketindex aktualisieren
$ sudo apt updateNginx installieren
$ sudo apt install nginx -yInstallierte Version überprüfen
$ nginx -vDie Ausgabe sollte ähnlich aussehen wie:
nginx version: nginx/1.18.0 (Ubuntu)
Nginx-Dienst verwalten
Nginx läuft als systemd-Dienst, sodass Sie die Prozesse bequem steuern können. Verwenden Sie die folgenden Befehle zur Verwaltung.
Nginx beim Systemstart aktivieren
$ sudo systemctl enable nginxNginx starten
$ sudo systemctl start nginxNginx stoppen
$ sudo systemctl stop nginxNginx neu starten
$ sudo systemctl restart nginxNginx-Status prüfen
$ sudo systemctl status nginxWenn die Ausgabe Active: active (running) anzeigt, läuft Nginx korrekt. Sollte Active: active (failed) erscheinen, beenden Sie alle Prozesse, die Port 80 nutzen, und starten Sie Nginx neu.
Einen neuen Nginx Virtual Host erstellen
Eine Virtual-Host-Konfiguration ermöglicht es Nginx, Dateien aus einem bestimmten Verzeichnis unter einer definierten Domain bereitzustellen. Führen Sie die folgenden Schritte aus, um eine Beispielkonfiguration zu erstellen.
Neue Konfigurationsdatei erstellen
$ sudo nano /etc/nginx/sites-available/app.example.com.confKonfiguration hinzufügen
server {
listen 80;
listen [::]:80;
server_name app.example.com;
root /var/www/app.example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}Diese Konfiguration lauscht auf Port 80 für app.example.com und stellt Dateien aus /var/www/app.example.com bereit.
Konfiguration auf Fehler prüfen
$ sudo nginx -tSeite aktivieren
$ sudo ln -s /etc/nginx/sites-available/app.example.com.conf /etc/nginx/sites-enabled/Webverzeichnis anlegen
$ sudo mkdir -p /var/www/app.example.comHTML-Testseite erstellen
$ sudo nano /var/www/app.example.com/index.htmlFügen Sie den folgenden HTML-Code in die Datei ein:
Greetings from centron
Nginx neu starten
$ sudo systemctl restart nginxZugriff überprüfen
Nutzen Sie curl oder einen Browser, um Ihre Einrichtung zu testen:
$ curl http://app.example.comErwartete Ausgabe:
Greetings from centron
Nginx-Webserver absichern
SSL-Zertifikate ermöglichen eine verschlüsselte Kommunikation zwischen dem Browser des Nutzers und dem Nginx-Server über HTTPS. Standardmäßig lauscht Nginx auf dem unsicheren Port 80. Befolgen Sie die folgenden Schritte, um vertrauenswürdige Let's Encrypt SSL-Zertifikate zu generieren und Nginx für verschlüsselte HTTPS-Verbindungen abzusichern.
Certbot installieren
Installieren Sie den Let's Encrypt Certbot-Client mit Snap:
$ sudo snap install --classic certbotCertbot-Version prüfen
$ certbot --versionBeispielausgabe:
certbot 3.3.0
HTTP-Verkehr für ACME-Überprüfung erlauben
Certbot benötigt Zugriff auf Port 80, um die Domain zu verifizieren.
$ sudo ufw allow 80/tcpSSL-Zertifikat erzeugen
Ersetzen Sie app.example.com durch Ihre tatsächliche Domain, die in der Nginx-Virtual-Host-Konfiguration hinterlegt ist.
$ sudo certbot --nginx -d app.example.com --agree-tosFirewall-Regeln einrichten
Ubuntu 20.04 nutzt standardmäßig die Uncomplicated Firewall (UFW). Führen Sie die folgenden Schritte aus, um Regeln zu konfigurieren, die Nginx den Empfang von HTTP- und HTTPS-Verbindungen erlauben.
HTTPS-Verkehr zulassen
$ sudo ufw allow 443/tcpFirewall-Regeln überprüfen
$ sudo ufw statusErwartete Ausgabe:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
Fazit
Sie haben nun erfolgreich Nginx auf Ubuntu 20.04 installiert und so konfiguriert, dass Webanwendungen ausgeliefert werden können. Mit Virtual Hosts lassen sich Anwendungen sicher bereitstellen, und durch die Integration mit weiteren Technologien wie MySQL und PHP ist es möglich, auch dynamische Webanwendungen zu betreiben.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.