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:
- Aktualisieren Sie den Paketindex auf Ihrem Server:
- Installieren Sie Nginx mit folgendem Befehl:
- Nach Abschluss der Installation können Sie den Nginx-Dienst starten mit:
- Um sicherzustellen, dass Nginx beim Boot automatisch gestartet wird, aktivieren Sie ihn mit:
sudo apt update
sudo apt install nginx
sudo systemctl start nginx
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.
- Erstellen Sie eine neue Konfigurationsdatei im Verzeichnis
sites-available: - Fügen Sie die folgende grundlegende Serverblock-Konfiguration hinzu, ersetzen Sie
example.comdurch Ihren Domänennamen und passen Sie Pfade nach Bedarf an: - Erstellen Sie das Dokumentenroot-Verzeichnis:
- Setzen Sie die korrekten Berechtigungen für das Webroot-Verzeichnis:
- Erstellen Sie eine Beispielindexdatei, um Ihre Konfiguration zu testen:
- Aktivieren Sie die neue Site, indem Sie einen symbolischen Link im Verzeichnis
sites-enablederstellen: - Testen Sie Ihre Nginx-Konfiguration auf Syntaxfehler:
- Falls der Test erfolgreich ist, laden Sie Nginx neu, um die Änderungen anzuwenden:
sudo nano /etc/nginx/sites-available/example.com
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;
}
}
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www
echo "Willkommen bei example.com!" | sudo tee /var/www/example.com/html/index.html
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
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.
- Falls Sie UFW verwenden, lassen Sie HTTP-Datenverkehr zu:
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.