Nginx unter Ubuntu 22.04 installieren und konfigurieren
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.
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 update
Nginx installieren
$ sudo apt install nginx -y
Installierte Nginx-Version überprüfen
$ nginx -v
Beispielausgabe:
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 nginx
Nginx starten
$ sudo systemctl start nginx
Nginx stoppen
$ sudo systemctl stop nginx
Nginx neu starten
$ sudo systemctl restart nginx
Status des Nginx-Dienstes prüfen
$ sudo systemctl status nginx
Beispielausgabe:
● 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.conf
Virtual-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 -t
Virtual 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.com
Beispiel-HTML-Datei erstellen
$ sudo nano /var/www/app.example.com/index.html
HTML-Inhalt hinzufügen
<html>
<head></head>
<body>
<h1>Grüße von centron</h1>
</body>
</html>
Nginx neu starten
$ sudo systemctl restart nginx
Zugriff auf deine Domain testen
Verwende curl, um zu überprüfen, ob deine Website erreichbar ist:
$ curl http://app.example.com
Nginx-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 certbot
Certbot-Version überprüfen
Überprüfe, ob Certbot erfolgreich installiert wurde:
$ certbot --version
Beispielausgabe:
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/tcp
SSL-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-tos
Firewall-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/tcp
Firewall-Status prüfen
Überprüfe, ob die UFW-Regeln für Nginx aktiv sind:
$ sudo ufw status
Beispielausgabe:
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.


