Ubuntu Server mit Nginx einrichten: Schritt-für-Schritt-Anleitung für Anfänger

1. Einführung

Viele möchten Nginx unter Ubuntu verwenden, wissen aber möglicherweise nicht, wo sie anfangen sollen, wenn sie zum ersten Mal damit in Berührung kommen. Dieser Artikel erklärt Schritt für Schritt, wie man Nginx in einer Ubuntu-Umgebung installiert, konfiguriert und verwaltet – auch für Anfänger leicht verständlich.

Was ist Nginx?

Nginx (Engine-X) ist bekannt als leistungsstarker HTTP-Server und Reverse-Proxy-Server. Aufgrund seiner Leichtigkeit und Flexibilität wird es weltweit in Webservern und Anwendungen eingesetzt. Besonders charakteristisch ist seine Struktur, die hohen Traffic bewältigen kann.

Vorteile der Verwendung von Nginx unter Ubuntu

Ubuntu ist eine beliebte Linux-Distribution und harmoniert gut mit Nginx. Da ein Paketverwaltungssystem (APT) verwendet werden kann, ist die Installation und Aktualisierung einfach, und es sind Stabilität und Sicherheit zu erwarten.

Nach dem Lesen dieses Artikels werden Sie Folgendes verstehen:

  • Installationsmethode von Nginx unter Ubuntu
  • Grundlegende Konfigurations- und Verwaltungsschritte
  • Performance-Tuning und Fehlerbehebung

Beginnen wir nun mit der eigentlichen Arbeit.

年収訴求

2. Installationsanleitung für Nginx unter Ubuntu

Um Nginx unter Ubuntu auszuführen, müssen Sie es zunächst korrekt installieren. Hier erklären wir die Installationsschritte auf leicht verständliche Weise.

Überprüfung der erforderlichen Pakete

Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist. Führen Sie die folgenden Befehle aus:

sudo apt update
sudo apt upgrade

Installation von Nginx

Geben Sie den folgenden Befehl ein, um Nginx zu installieren:

sudo apt install nginx

Mit diesem Befehl wird Nginx automatisch aus dem APT-Repository von Ubuntu heruntergeladen und installiert.

Installationsprüfung

Um zu überprüfen, ob die Installation korrekt abgeschlossen wurde, überprüfen Sie den Status von Nginx mit dem folgenden Befehl:

sudo systemctl status nginx

Wenn die Ausgabe „active (running)“ anzeigt, war die Installation erfolgreich.

Firewall-Konfiguration

Ubuntu verfügt über UFW (Uncomplicated Firewall), das verwendet wird, um die Kommunikation von Nginx zu erlauben.

sudo ufw allow 'Nginx Full'
sudo ufw enable

Damit ist Nginx bereit, auf Port 80 (HTTP) und Port 443 (HTTPS) zu arbeiten.

3. Grundlegende Nginx-Konfiguration unter Ubuntu

Die Installation von Nginx allein reicht noch nicht aus. Als Nächstes nehmen wir grundlegende Einstellungen vor, damit Nginx effektiv genutzt werden kann.

Speicherort und Grundstruktur der Konfigurationsdateien

Die wichtigsten Konfigurationsdateien von Nginx befinden sich an folgenden Speicherorten:

  • Hauptkonfigurationsdatei: /etc/nginx/nginx.conf
  • Site-spezifische Konfigurationsdateien: im Verzeichnis /etc/nginx/sites-available/

Im Wesentlichen erstellt man Konfigurationsdateien für virtuelle Hosts im Verzeichnis sites-available und verknüpft diese mit symbolischen Links im Verzeichnis sites-enabled.

Konfiguration des virtuellen Hosts

Durch die Konfiguration virtueller Hosts können Sie mehrere Domains oder Projekte auf einem einzigen Server verwalten. Das folgende Beispiel konfiguriert example.com.

sudo nano /etc/nginx/sites-available/example.com

Geben Sie den folgenden Inhalt ein:

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;
    }
}

Speichern Sie die Datei und aktivieren Sie die Konfiguration mit den folgenden Befehlen:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

SSL/TLS-Konfiguration

Um eine sichere Kommunikation zu gewährleisten, konfigurieren Sie SSL/TLS-Zertifikate. Sie können kostenlose Zertifikate mit Let’s Encrypt erhalten.

Installieren Sie zunächst certbot:

sudo apt install certbot python3-certbot-nginx

Führen Sie anschließend den folgenden Befehl aus, um ein SSL-Zertifikat zu erhalten und automatisch zu konfigurieren:

sudo certbot --nginx -d example.com -d www.example.com

Konfigurieren Sie auch die automatische Verlängerung, damit das Zertifikat nicht abläuft.

4. Nginx starten und verwalten

Nach der Installation und Grundkonfiguration von Nginx müssen Sie lernen, wie Sie es starten, stoppen und Konfigurationsänderungen neu laden. Dieser Abschnitt erklärt die grundlegenden Befehle zur Verwaltung von Nginx und wie man bei Problemen vorgeht.

Grundlegende Nginx-Befehle

Unter Ubuntu verwenden Sie den Befehl systemctl, um den Status von Nginx zu verwalten. Hier sind die wichtigsten Befehle:

  1. Nginx starten
   sudo systemctl start nginx
  1. Nginx stoppen
   sudo systemctl stop nginx
  1. Nginx neu starten
    Bei größeren Konfigurationsänderungen kann ein Neustart erforderlich sein.
   sudo systemctl restart nginx
  1. Nginx neu laden
    Wenn Sie Konfigurationsdateien geändert haben, können Sie sie durch Neuladen anwenden, ohne neu zu starten.
   sudo systemctl reload nginx
  1. Nginx-Status überprüfen
    Verwenden Sie den folgenden Befehl, um zu überprüfen, ob es ordnungsgemäß funktioniert:
   sudo systemctl status nginx

Nginx-Autostart-Konfiguration

Durch das Aktivieren des automatischen Starts von Nginx müssen Sie es nach einem Systemneustart nicht mehr manuell starten.

  1. Autostart aktivieren
   sudo systemctl enable nginx
  1. Autostart deaktivieren
    Bei Bedarf deaktivieren:
   sudo systemctl disable nginx

Protokolle überprüfen und Fehler beheben

Wenn Nginx nicht wie erwartet funktioniert, überprüfen Sie die Protokolle, um die Ursache zu ermitteln.

  1. Fehlerprotokolle überprüfen
    Fehlerprotokolle werden hier gespeichert:
   sudo tail -f /var/log/nginx/error.log
  1. Zugriffsprotokolle überprüfen
    Sie können den Inhalt der Client-Anfragen überprüfen:
   sudo tail -f /var/log/nginx/access.log

Häufige Probleme und Lösungen

  1. Nginx startet nicht
  • Ursache: Möglicher Fehler in der Konfigurationsdatei.
  • Lösung:
    bash sudo nginx -t
    Überprüfen Sie mit diesem Befehl die Konfigurationsdatei auf Fehler und beheben Sie die Probleme.
  1. Änderungen werden nicht übernommen
  • Ursache: Neuladen oder Neustart wurde nicht durchgeführt.
  • Lösung:
    Führen Sie nach Konfigurationsänderungen sudo systemctl reload nginx aus.
  1. Port ist nicht geöffnet
  • Ursache: Firewall-Einstellungen.
  • Lösung:
    bash sudo ufw allow 'Nginx Full'

Durch die Anwendung dieser Schritte können Sie die grundlegende Verwaltung von Nginx sicher durchführen.

5. Nginx Firewall-Konfiguration und Sicherheitsverbesserung

Sicherheit ist beim Betrieb von Nginx sehr wichtig. Dieser Abschnitt erklärt die Port-Konfiguration mit der Ubuntu-Firewall (UFW) und wie man die Sicherheit von Nginx verbessert.

Portfreigabe mit UFW

UFW (Uncomplicated Firewall) ist ein standardmäßig in Ubuntu installiertes Firewall-Tool. Damit Nginx ordnungsgemäß funktioniert, müssen die Ports 80 (HTTP) und 443 (HTTPS) geöffnet werden.

  1. Aktuellen UFW-Status überprüfen
   sudo ufw status
  1. Nginx-Regeln anwenden
    Öffnen Sie die erforderlichen Ports mit dem folgenden Befehl:
   sudo ufw allow 'Nginx Full'
  1. UFW aktivieren
    Wenn die Firewall deaktiviert ist, aktivieren Sie sie:
   sudo ufw enable

Zusätzliche Einstellungen zur Sicherheitsverbesserung

  1. Deaktivierung unnötiger HTTP-Methoden
    Um die Serversicherheit zu erhöhen, deaktivieren Sie unnötige HTTP-Methoden. Fügen Sie die folgende Einstellung zur Nginx-Konfigurationsdatei hinzu:
   if ($request_method !~ ^(GET|POST|HEAD)$) {
       return 444;
   }
  1. Deaktivierung des Verzeichnis-Listings
    Um zu verhindern, dass Verzeichnisinhalte öffentlich zugänglich sind, fügen Sie Folgendes zur Konfigurationsdatei hinzu:
   autoindex off;
  1. Verbesserung von SSL/TLS
    Um starke Verschlüsselungsmethoden zu verwenden, fügen Sie der SSL-Konfiguration Folgendes hinzu:
   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_prefer_server_ciphers on;
   ssl_ciphers HIGH:!aNULL:!MD5;

6. Nginx Performance-Tuning und Fehlerbehebung

Nginx wird als hochleistungsfähiger Webserver eingesetzt, und durch entsprechende Optimierung kann seine Leistung weiter gesteigert werden. Dieser Abschnitt erläutert Methoden zur Verbesserung der Nginx-Performance und Lösungen für häufige Probleme.

Performance-Tuning

1. Konfiguration der Worker-Prozesse

Nginx verwendet ein Multi-Prozess-Design, und durch die korrekte Einstellung der Worker-Prozesse kann die Leistung optimiert werden.

Bearbeiten Sie die Konfigurationsdatei /etc/nginx/nginx.conf:

worker_processes auto;

Durch die Angabe von auto wird die optimale Anzahl von Prozessen entsprechend der Anzahl der CPU-Kerne des Servers automatisch eingestellt.

2. Erhöhen der Verbindungsanzahl pro Worker-Prozess

Standardmäßig ist die Anzahl der Verbindungen pro Worker-Prozess begrenzt. Durch Erhöhen dieses Wertes wird die Verarbeitungsfähigkeit bei hoher Last verbessert.

Suchen Sie in der Konfigurationsdatei nach der folgenden Zeile oder fügen Sie sie hinzu:

worker_connections 1024;

3. Aktivierung von HTTP/2

Durch die Aktivierung von HTTP/2 wird die Kommunikation mit dem Browser effizienter und die Ladezeit der Website verbessert.

Bearbeiten Sie die Datei /etc/nginx/sites-available/example.com und ändern Sie die listen-Direktive wie folgt:

listen 443 ssl http2;

Danach laden Sie Nginx neu:

sudo systemctl reload nginx

4. Konfiguration der Inhaltskomprimierung

Durch das Komprimieren und Senden von Dateien können Sie das Datenvolumen reduzieren und die Seitenladezeit verbessern.

Fügen Sie Folgendes zur Konfigurationsdatei hinzu oder aktivieren Sie es:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

5. Cache-Konfiguration

Durch die Konfiguration des Caches für statische Dateien kann die Anzahl der Anfragen für dieselben Ressourcen reduziert werden.

Fügen Sie Folgendes zum Server-Block hinzu:

location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 30d;
    access_log off;
}

Häufige Problembehebung

1. Langsame Anfragenbearbeitung bei hoher Last

  • Ursache
    Oft sind Worker-Prozesse oder Verbindungszahlen falsch konfiguriert.
  • Lösung
  • Anpassung der Worker-Prozesse und Worker-Verbindungszahlen.
  • Gegebenenfalls Einführung eines Lastverteilers (Load Balancer).

2. Fehlercode 403 Forbidden wird angezeigt

  • Ursache
  • Der Pfad der root-Direktive in der Nginx-Konfigurationsdatei ist falsch.
  • Die Berechtigungen für Verzeichnisse oder Dateien sind unzureichend.
  • Lösung
  • Überprüfen Sie die root-Direktive in der Konfigurationsdatei und geben Sie den korrekten Pfad an.
  • Korrigieren Sie die Berechtigungen mit dem folgenden Befehl:
    bash sudo chmod -R 755 /var/www/example.com/html sudo chown -R www-data:www-data /var/www/example.com/html

3. Server-Timeout

  • Ursache
  • Die Verarbeitung von Client-Anfragen dauert zu lange.
  • Lösung
    Passen Sie die Timeout-Zeit an. Fügen Sie der Konfigurationsdatei Folgendes hinzu oder ändern Sie es:
  proxy_read_timeout 300;
  proxy_connect_timeout 300;
  proxy_send_timeout 300;

4. Fehler beim Neustart von Nginx

  • Ursache
    Die Konfigurationsdatei enthält Fehler.
  • Lösung
    Führen Sie vor dem Speichern der Konfiguration eine Syntaxprüfung mit dem folgenden Befehl durch:
  sudo nginx -t

Durch die Umsetzung dieser Schritte können Sie die Nginx-Leistung maximieren und häufige Probleme beheben.

7. Zusammenfassung und nächste Schritte

Dieser Artikel hat detailliert erklärt, wie man Nginx unter Ubuntu installiert, effektiv konfiguriert und verwaltet. Wir blicken auf die in jedem Abschnitt gelernten Inhalte zurück und geben Ratschläge für die nächsten Schritte.

Rückblick auf den gesamten Artikel

1. Nginx-Installationsanleitung unter Ubuntu

  • Wir haben gelernt, wie man die erforderlichen Pakete vorbereitet und Nginx mit APT installiert.
  • Wir haben die Firewall (UFW) konfiguriert, um die Nginx-Kommunikation zu erlauben.

2. Grundlegende Konfiguration

  • Wir haben den Speicherort und die Struktur der Konfigurationsdateien verstanden und die Schritte zur Einrichtung von virtuellen Hosts und SSL/TLS gelernt.
  • Wir haben die konkreten Konfigurationsmethoden anhand von Codebeispielen gelernt.

3. Start- und Verwaltungsmethoden

  • Wir haben grundlegende Operationen wie Starten, Stoppen, Neustarten und Neuladen verstanden.
  • Wir haben auch gelernt, wie man Protokolle überprüft, um die Fehlerbehebung zu erleichtern.

4. Firewall-Konfiguration und Sicherheitsverbesserung

  • Wir haben Sicherheitsverbesserungen wie das Öffnen von Ports mit UFW und das Deaktivieren unnötiger HTTP-Methoden praktiziert.

5. Performance-Tuning und Fehlerbehebung

  • Wir haben spezifische Tuning-Methoden wie die Optimierung von Worker-Prozessen, die Aktivierung von HTTP/2 und Cache-Einstellungen erläutert.
  • Wir haben gelernt, wie man mit häufigen Problemen umgeht, um einen stabileren Betrieb zu erreichen.

Nächste Schritte

Durch das Erlernen der in diesem Artikel vorgestellten grundlegenden Installations- und Konfigurationsschritte sollten Sie die Grundlagen für den Betrieb von Nginx unter Ubuntu beherrschen. Um Ihre Fähigkeiten weiter zu vertiefen, ziehen Sie die folgenden nächsten Schritte in Betracht:

  1. Erlernen fortgeschrittener Nginx-Konfigurationen
  • Lernen Sie detaillierte Einstellungen für Lastverteilung (Load Balancing) und Reverse Proxy, um einen fortgeschritteneren Betrieb anzustreben.
  • Versuchen Sie, neue Anwendungsfälle zu realisieren, indem Sie Module (z.B. das Nginx RTMP-Modul) nutzen.
  1. Weitere Sicherheitsverbesserungen
  • Erwägen Sie die Implementierung einer Web Application Firewall (WAF) oder die Nutzung sicherheitsrelevanter Nginx-Module.
  1. Einführung der Automatisierung
  • Sie können die Arbeitseffizienz verbessern, indem Sie lernen, wie Sie Nginx-Bereitstellungen und -Verwaltung mit Ansible oder Docker automatisieren.
  1. Nutzung von Überwachungs- und Optimierungstools
  • Führen Sie Überwachungstools wie Prometheus und Grafana ein, um die Nginx-Leistung in Echtzeit zu visualisieren.

Fazit

Nginx ist ein schneller und flexibler Webserver, der bei korrekter Konfiguration viele Anwendungsfälle abdecken kann. Nutzen Sie das in diesem Artikel Gelernte und wenden Sie es in Ihren tatsächlichen Projekten an.

Sollten in Zukunft weitere Fragen oder neue Bedürfnisse auftauchen, empfehlen wir Ihnen, die offizielle Nginx-Dokumentation oder Community-Ressourcen zu konsultieren. Wir hoffen, dass dieser Artikel Ihnen bei der Verwaltung Ihres Webservers von Nutzen ist!

侍エンジニア塾