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

Nginx installieren

$ sudo apt install nginx -y

Installierte Nginx-Version überprüfen

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

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:

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:

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:

Firewall-Status prüfen

Überprüfe, ob die UFW-Regeln für Nginx aktiv sind:

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.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: