Dieser Leitfaden führt Sie durch den Prozess der Installation und Konfiguration des Nginx Webservers auf einem Ubuntu- oder Debian-System. Am Ende dieses Tutorials verfügen Sie über ein grundlegendes Verständnis, wie man Nginx einrichtet, Serverblöcke (virtuelle Hosts) erstellt, Websites verwaltet, Firewallregeln konfiguriert und Ihre Einrichtung testet.

Nginx installieren

Um Nginx auf Ubuntu oder Debian zu installieren, befolgen Sie diese Schritte:

  1. Aktualisieren Sie den Paketindex auf Ihrem Server:
  2. sudo apt update
  3. Installieren Sie Nginx mit folgendem Befehl:
  4. sudo apt install nginx
  5. Nach Abschluss der Installation können Sie den Nginx-Dienst starten mit:
  6. sudo systemctl start nginx
  7. Um sicherzustellen, dass Nginx beim Boot automatisch gestartet wird, aktivieren Sie ihn mit:
  8. sudo systemctl enable nginx

Standardkonfiguration

Nginx kommt mit einer Standardkonfigurationsdatei unter /etc/nginx/nginx.conf. Es wird allgemein empfohlen, diese Datei unverändert zu lassen und sitzspezifische Konfigurationen in Serverblöcken vorzunehmen.

Der Standardserverblock befindet sich unter /etc/nginx/sites-available/default und wird aktiviert, indem ein symbolischer Link darauf im Verzeichnis sites-enabled erstellt wird. Sie können seinen Inhalt mit folgendem Befehl anzeigen:

cat /etc/nginx/sites-available/default

Erstellen von Serverblöcken (virtuelle Hosts)

Um mehrere Domains auf einem einzelnen Server zu hosten, müssen Sie für jede Domain separate Serverblöcke erstellen.

  1. Erstellen Sie eine neue Konfigurationsdatei im Verzeichnis sites-available:
  2. sudo nano /etc/nginx/sites-available/example.com
  3. Fügen Sie die folgende grundlegende Serverblock-Konfiguration hinzu, ersetzen Sie example.com durch Ihren Domänennamen und passen Sie Pfade nach Bedarf an:
  4. server {
            listen 80;
            server_name example.com www.example.com;
    
            root /var/www/example.com/html;
            index index.html index.htm;
    
            location / {
                try_files $uri $uri/ =404;
            }
        }
  5. Erstellen Sie das Dokumentenroot-Verzeichnis:
  6. sudo mkdir -p /var/www/example.com/html
  7. Setzen Sie die korrekten Berechtigungen für das Webroot-Verzeichnis:
  8. sudo chown -R $USER:$USER /var/www/example.com/html
    sudo chmod -R 755 /var/www
  9. Erstellen Sie eine Beispielindexdatei, um Ihre Konfiguration zu testen:
  10. echo "Willkommen bei example.com!" | sudo tee /var/www/example.com/html/index.html
  11. Aktivieren Sie die neue Site, indem Sie einen symbolischen Link im Verzeichnis sites-enabled erstellen:
  12. sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  13. Testen Sie Ihre Nginx-Konfiguration auf Syntaxfehler:
  14. sudo nginx -t
  15. Falls der Test erfolgreich ist, laden Sie Nginx neu, um die Änderungen anzuwenden:
  16. sudo systemctl reload nginx

Firewall-Konfiguration

Stellen Sie sicher, dass Ihre Firewall den Datenverkehr auf Port 80 (HTTP) und optional Port 443 (HTTPS) zulässt.

  1. Falls Sie UFW verwenden, lassen Sie HTTP-Datenverkehr zu:
  2. sudo ufw allow 'Nginx Full'

Ihre Einrichtung testen

Um zu überprüfen, ob Ihr Nginx-Serverblock korrekt funktioniert, öffnen Sie einen Webbrowser und navigieren Sie zu Ihrem Domänennamen oder Ihrer IP-Adresse. Sie sollten die von Ihnen früher erstellte Nachricht „Willkommen bei example.com!“ sehen.

Fehlerbehebung

  • 403 Forbidden Error: Überprüfen Sie, ob die Berechtigungen für Ihr Dokumentenroot-Verzeichnis korrekt gesetzt sind und ob Nginx Lesezugriff hat.
  • 502 Bad Gateway Error: Dies deutet oft auf ein Problem mit einem Backend-Dienst hin. Stellen Sie sicher, dass alle vom Ihrer Site benötigten Dienste (z.B. PHP-FPM) laufen.
  • Nginx startet nicht: Überprüfen Sie das Nginx-Errorlog für weitere Informationen mit sudo tail -f /var/log/nginx/error.log.