Nginx ist ein Open-Source-Webserver, der sowohl statische als auch dynamische Webinhalte bereitstellt. Er kann als Webserver, Reverse-Proxy, Load Balancer oder HTTP-Cache fungieren und lässt sich nahtlos in verschiedene Anwendungen integrieren, um Webinhalte effizient über die IP-Adresse oder Domain deines Servers auszuliefern.
Diese Anleitung erklärt, wie du Nginx unter Ubuntu 22.04 installierst und Beispiel-Webanwendungen für eine optimale Leistung einrichtest.
Voraussetzungen
- Ein Ubuntu 22.04 Server.
- Ein Domain-A-Eintrag, der auf die IP-Adresse deines Servers zeigt.
- SSH-Zugriff als Nicht-Root-Benutzer mit Sudo-Rechten.
- Ein aktualisierter Paketindex des Servers.
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 unter Ubuntu 22.04 installieren
Nginx ist in den Standard-APT-Repositories von Ubuntu 22.04 enthalten. Folge den nachstehenden Schritten, um den Webserver zu installieren und zu überprüfen.
Paketindex aktualisieren
$ sudo apt updateNginx installieren
$ sudo apt install nginx -yInstallierte Nginx-Version überprüfen
$ nginx -vBeispielausgabe:
nginx version: nginx/1.18.0 (Ubuntu)
Nginx-Dienst verwalten
Nginx läuft als systemd-Dienst, der die Prozesse des Webservers steuert. Mit den folgenden Befehlen kannst du den Dienststatus prüfen und verwalten.
Nginx beim Systemstart aktivieren
$ sudo systemctl enable nginxNginx starten
$ sudo systemctl start nginxNginx stoppen
$ sudo systemctl stop nginxNginx neu starten
$ sudo systemctl restart nginxStatus des Nginx-Dienstes prüfen
$ sudo systemctl status nginxBeispielausgabe:
● nginx.service - Hochleistungs-Webserver und Reverse Proxy Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since So 2025-04-06 07:47:16 UTC; 1min 49s ago
Docs: man:nginx(8)
Main PID: 3143 (nginx)
Tasks: 5 (limit: 9385)
Memory: 4.8M
CGroup: /system.slice/nginx.service
├─3143 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
├─3144 "nginx: worker process"
├─3145 "nginx: worker process"
├─3146 "nginx: worker process"
└─3147 "nginx: worker process"
Nginx Virtual Host erstellen
Virtuelle Hosts bestimmen, wie Nginx bestimmte Domains oder Webanwendungen ausliefert. Die folgenden Schritte zeigen, wie du eine einfache Konfiguration für eine Beispielseite einrichtest.
Virtual-Host-Datei erstellen
$ sudo nano /etc/nginx/sites-available/app.example.com.confVirtual-Host-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 (HTTP) und liefert Dateien aus dem Webroot-Verzeichnis /var/www/app.example.com.
Konfiguration testen
$ sudo nginx -tVirtual Host aktivieren
$ sudo ln -s /etc/nginx/sites-available/app.example.com.conf /etc/nginx/sites-enabled/Webroot-Verzeichnis erstellen
$ sudo mkdir -p /var/www/app.example.comBeispiel-HTML-Datei erstellen
$ sudo nano /var/www/app.example.com/index.htmlHTML-Inhalt hinzufügen
<html>
<head></head>
<body>
<h1>Grüße von centron</h1>
</body>
</html>Nginx neu starten
$ sudo systemctl restart nginxZugriff auf deine Domain testen
Verwende curl, um zu überprüfen, ob deine Website erreichbar ist:
$ curl http://app.example.comNginx-Webserver absichern
SSL-Zertifikate sorgen für eine verschlüsselte Kommunikation zwischen dem Browser des Benutzers und dem Nginx-Webserver über HTTPS. Standardmäßig lauscht Nginx auf dem unverschlüsselten HTTP-Port 80. Folge diesen Schritten, um vertrauenswürdige Let's-Encrypt-SSL-Zertifikate zu erstellen und deinen Webserver sicher zu konfigurieren.
Certbot installieren
Installiere den Let's-Encrypt-Client Certbot über Snap:
$ sudo snap install --classic certbotCertbot-Version überprüfen
Überprüfe, ob Certbot erfolgreich installiert wurde:
$ certbot --versionBeispielausgabe:
certbot 3.3.0
HTTP-Verbindungen für die Zertifikatsprüfung erlauben
Certbot nutzt den HTTP-Port 80 für die ACME-Domainvalidierung. Erlaube vorübergehend eingehende Verbindungen:
$ sudo ufw allow 80/tcpSSL-Zertifikat erstellen
Erstelle ein neues SSL-Zertifikat für deine Domain. Ersetze app.example.com durch deine tatsächliche Domain:
$ sudo certbot --nginx -d app.example.com --agree-tosFirewall-Regeln konfigurieren
Ubuntu 22.04 enthält standardmäßig die Uncomplicated Firewall (UFW). Konfiguriere sie so, dass Nginx eingehende HTTP- und HTTPS-Verbindungen verarbeiten kann.
HTTPS-Verkehr erlauben
Öffne den HTTPS-Port (443), um sicheren Webzugriff zu ermöglichen:
$ sudo ufw allow 443/tcpFirewall-Status prüfen
Überprüfe, ob die UFW-Regeln für Nginx aktiv sind:
$ sudo ufw statusBeispielausgabe:
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
In dieser Anleitung hast du Nginx unter Ubuntu 22.04 installiert und konfiguriert, um sichere Webanwendungen bereitzustellen. Du hast außerdem HTTPS mit Let's-Encrypt-SSL-Zertifikaten aktiviert und UFW-Firewall-Regeln eingerichtet. Nginx unterstützt mehrere virtuelle Hosts für eine sichere Bereitstellung von Anwendungen und lässt sich leicht mit Diensten wie MySQL und PHP kombinieren, um 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.