Nginx auf Ubuntu 20.04 installieren und konfigurieren
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.
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 update
Nginx installieren
$ sudo apt install nginx -y
Installierte Version überprüfen
$ nginx -v
Die 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 nginx
Nginx starten
$ sudo systemctl start nginx
Nginx stoppen
$ sudo systemctl stop nginx
Nginx neu starten
$ sudo systemctl restart nginx
Nginx-Status prüfen
$ sudo systemctl status nginx
Wenn 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.conf
Konfiguration 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 -t
Seite 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.com
HTML-Testseite erstellen
$ sudo nano /var/www/app.example.com/index.html
Fügen Sie den folgenden HTML-Code in die Datei ein:
Greetings from centron
Nginx neu starten
$ sudo systemctl restart nginx
Zugriff überprüfen
Nutzen Sie curl oder einen Browser, um Ihre Einrichtung zu testen:
$ curl http://app.example.com
Erwartete 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 certbot
Certbot-Version prüfen
$ certbot --version
Beispielausgabe:
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/tcp
SSL-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-tos
Firewall-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/tcp
Firewall-Regeln überprüfen
$ sudo ufw status
Erwartete 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.


