Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Verwaltung

Installation und Konfiguration von Nginx auf CentOS 7: Ein vollständiger Schritt-für-Schritt-Leitfaden

Nginx ist einer der leistungsstärksten und am weitesten verbreiteten Open-Source-Webserver der Welt. Bekannt für seine außergewöhnliche Leistung, seinen geringen Speicherverbrauch und seine Fähigkeit, Tausende gleichzeitiger Verbindungen zu verarbeiten, ist Nginx die bevorzugte Lösung für die Bereitstellung statischer Inhalte, als Reverse Proxy und für Load Balancing über verteilte Systeme.

Egal ob Sie einen persönlichen Blog, eine stark frequentierte E-Commerce-Plattform oder eine komplexe Microservices-Architektur betreiben, Nginx bietet die Geschwindigkeit und Zuverlässigkeit, die Ihre Benutzer erwarten. Dieser umfassende Leitfaden führt Sie durch jeden Schritt der Installation, Konfiguration, Sicherung und Optimierung von Nginx auf einem CentOS 7-Server — von der anfänglichen Systemvorbereitung bis zur Aktivierung von HTTPS mit einem kostenlosen Let’s Encrypt SSL-Zertifikat.

> Voraussetzungen: Ein CentOS 7-Server mit Root- oder Sudo-Zugriff. Wenn Sie eine zuverlässige, leistungsstarke Umgebung zum Folgen benötigen, erwägen Sie die Erkundung von VPS Hosting von AlexHost — speziell für anspruchsvolle Workloads mit vollständigem Root-Zugriff und SSD-Speicher entwickelt.

Schritt 1: Aktualisieren Sie Ihr System

Vor der Installation neuer Software ist es wichtig sicherzustellen, dass Ihr CentOS 7-System vollständig aktualisiert ist. Veraltete Pakete können Sicherheitslücken und Abhängigkeitskonflikte einführen, die den Installationsprozess erschweren.

Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:

sudo yum update -y

Dieser Befehl aktualisiert alle installierten Pakete auf ihre neuesten verfügbaren Versionen. Das -y-Flag bestätigt automatisch alle Eingabeaufforderungen und macht den Prozess nicht interaktiv. Lassen Sie die Aktualisierung vollständig abschließen, bevor Sie fortfahren.

Schritt 2: Nginx über YUM installieren

Nginx ist nicht in den Standard-CentOS 7-Basis-Repositories verfügbar. Sie müssen zunächst das EPEL (Extra Packages for Enterprise Linux)-Repository installieren, das eine breite Palette zusätzlicher Softwarepakete für RHEL-basierte Distributionen bereitstellt.

Installieren Sie das EPEL-Repository:

sudo yum install epel-release -y

Installieren Sie Nginx:

sudo yum install nginx -y

Dieser Befehl lädt Nginx zusammen mit allen erforderlichen Abhängigkeiten herunter und installiert es. Nach Abschluss der Installation können Sie die installierte Version überprüfen mit:

nginx -v

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

nginx version: nginx/1.20.x

Schritt 3: Nginx-Dienst starten und aktivieren

Nach der Installation von Nginx müssen Sie den Dienst starten und so konfigurieren, dass er bei jedem Neustart des Servers automatisch startet.

Starten Sie den Nginx-Dienst:

sudo systemctl start nginx

Aktivieren Sie Nginx zum Starten beim Booten:

sudo systemctl enable nginx

Überprüfen Sie den Dienststatus, um zu bestätigen, dass er ausgeführt wird:

sudo systemctl status nginx

Sie sollten eine Ausgabe sehen, die anzeigt, dass der Dienst aktiv (läuft) ist:

● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; ...)
   Active: active (running) since ...

Wenn der Dienst nicht startet, überprüfen Sie die Fehlerprotokolle unter /var/log/nginx/error.log auf Diagnoseinformationen.

Schritt 4: Firewall konfigurieren

CentOS 7 verwendet firewalld als Standard-Firewall-Verwaltungstool. Standardmäßig werden HTTP (Port 80) und HTTPS (Port 443) blockiert. Sie müssen diese Ports explizit öffnen, um Web-Traffic zu Ihrem Nginx-Server zuzulassen.

HTTP-Traffic zulassen:

sudo firewall-cmd --permanent --add-service=http

HTTPS-Traffic zulassen:

sudo firewall-cmd --permanent --add-service=https

Firewall neu laden, um die Änderungen anzuwenden:

sudo firewall-cmd --reload

Aktive Regeln überprüfen:

sudo firewall-cmd --list-all

Sie sollten sowohl http als auch https im Abschnitt services der Ausgabe aufgelistet sehen. Wenn Ihr Server hinter einer externen Firewall oder Sicherheitsgruppe gehostet wird (häufig bei Cloud-Anbietern), stellen Sie sicher, dass diese Regeln auch aktualisiert werden, um Traffic auf den Ports 80 und 443 zuzulassen.

Schritt 5: Installation überprüfen

Um zu bestätigen, dass Nginx korrekt installiert ist und Inhalte bereitstellt, öffnen Sie einen Webbrowser und navigieren Sie zur öffentlichen IP-Adresse Ihres Servers:

http://your_server_ip

Sie sollten die Standard-Nginx-Willkommensseite sehen, die die Nachricht *"Welcome to nginx!"* anzeigt. Dies bestätigt, dass der Webserver betriebsbereit ist und aus dem Internet erreichbar ist.

Wenn Sie die Willkommensseite nicht sehen, überprüfen Sie Folgendes:

  • Der Nginx-Dienst wird ausgeführt (sudo systemctl status nginx)
  • Die Firewall-Regeln sind korrekt angewendet
  • Die IP-Adresse Ihres Servers ist korrekt
  • Kein anderer Dienst (wie Apache) belegt Port 80

Schritt 6: Nginx Server Blocks konfigurieren

Nginx verwendet Server Blocks (funktional äquivalent zu Apaches Virtual Hosts), um zu definieren, wie es Anfragen für verschiedene Domains oder Subdomains verarbeitet. Jeder Server Block wird typischerweise als separate Konfigurationsdatei im /etc/nginx/conf.d/ Verzeichnis gespeichert.

Die Haupt-Nginx-Konfigurationsdatei befindet sich unter /etc/nginx/nginx.conf. Sie enthält eine Direktive, die automatisch alle .conf Dateien aus dem conf.d Verzeichnis lädt und hält Ihre Konfiguration modular und leicht zu verwalten.

Schritt 6a: Eine neue Server Block-Konfigurationsdatei erstellen

Erstellen Sie eine neue Konfigurationsdatei für Ihre Domain. Ersetzen Sie example.com durch Ihren tatsächlichen Domainnamen:

sudo nano /etc/nginx/conf.d/example.com.conf

Fügen Sie die folgende Server Block-Konfiguration hinzu:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm index.php;

    # Logging
    access_log /var/log/nginx/example.com.access.log;
    error_log  /var/log/nginx/example.com.error.log;

    location / {
        try_files $uri $uri/ =404;
    }

    # Deny access to hidden files
    location ~ /. {
        deny all;
    }
}

Wichtige Direktiven erklärt:

DirektiveBeschreibung
listen 80Weist Nginx an, auf eingehende Verbindungen an Port 80 (HTTP) zu warten
server_nameDefiniert die Domainnamen, auf die dieser Server Block antwortet
rootGibt das Document Root-Verzeichnis an, in dem Website-Dateien gespeichert sind
indexDefiniert die Standarddateien, die Nginx bereitstellt, wenn ein Verzeichnis angefordert wird
try_filesVersucht, den angeforderten URI als Datei zu bereitstellen, dann als Verzeichnis, und gibt 404 zurück, wenn keines existiert
access_log / error_logDefiniert separate Protokolldateien für diesen Virtual Host für einfacheres Debugging

Speichern Sie die Datei und beenden Sie den Editor (Ctrl+X, dann Y, dann Enter in nano).

Schritt 7: Dokumentstammverzeichnis erstellen und Testdatei

Erstellen Sie das Dokumentstammverzeichnis, das Sie in der Server-Block-Konfiguration definiert haben:

sudo mkdir -p /var/www/example.com/html

Erstellen Sie eine einfache index.html Datei, um zu überprüfen, ob der Server-Block korrekt funktioniert:

echo "<h1>Welcome to Example.com — Powered by Nginx on CentOS 7!</h1>" | sudo tee /var/www/example.com/html/index.html

Legen Sie die richtige Eigentümerschaft und Berechtigungen fest, damit Nginx die Dateien lesen kann:

sudo chown -R nginx:nginx /var/www/example.com/
sudo chmod -R 755 /var/www/example.com/

> Hinweis zu SELinux: CentOS 7 wird standardmäßig mit aktiviertem SELinux ausgeliefert. Wenn Nginx Ihre Webdateien nicht lesen kann, auch wenn die Berechtigungen korrekt sind, müssen Sie möglicherweise den entsprechenden SELinux-Kontext anwenden:

> “`bash

> sudo chcon -Rt httpd_sys_content_t /var/www/example.com/

> “`

Schritt 8: Testen der Nginx-Konfiguration

Bevor Sie Nginx neu starten, um Ihre neue Konfiguration anzuwenden, testen Sie immer auf Syntaxfehler. Eine falsch konfigurierte Datei kann Ihren gesamten Webserver zum Absturz bringen.

Führen Sie den Konfigurationstest aus:

sudo nginx -t

Ein erfolgreicher Test erzeugt die folgende Ausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Wenn Fehler gemeldet werden, überprüfen Sie sorgfältig die angegebenen Zeilennummern in Ihren Konfigurationsdateien und beheben Sie alle Probleme, bevor Sie fortfahren.

Starten Sie Nginx neu, um die Änderungen anzuwenden:

sudo systemctl restart nginx

Alternativ können Sie die Konfiguration neu laden, ohne aktive Verbindungen zu unterbrechen (empfohlen für Produktionsumgebungen):

sudo systemctl reload nginx

Navigieren Sie nun in einem Browser zu Ihrer Domain. Sie sollten Ihre benutzerdefinierte index.html Seite sehen.

Schritt 9: HTTPS mit Let’s Encrypt einrichten

Das Ausführen einer Website über einfaches HTTP setzt Ihre Benutzer potenziellen Abhörangriffen und Man-in-the-Middle-Angriffen aus. Die Sicherung Ihrer Website mit HTTPS ist nicht mehr optional — es ist eine grundlegende Anforderung für Benutzervertrauen, Datenintegrität und Suchmaschinen-Ranking.

Let’s Encrypt bietet kostenlose, automatisierte und vertrauenswürdige SSL/TLS-Zertifikate. Sie können auch Premium-SSL-Zertifikate von AlexHost erkunden, die erweiterte Validierung und organisationsvalidierte Optionen bieten, die höhere Vertrauensstufen für Business-Websites bieten.

Certbot und das Nginx-Plugin installieren

sudo yum install certbot python2-certbot-nginx -y

Das SSL-Zertifikat abrufen und installieren

Führen Sie Certbot mit dem --nginx Plugin aus, das Ihre Nginx-Konfiguration automatisch ändert, um HTTPS zu aktivieren:

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

Folgen Sie den interaktiven Eingabeaufforderungen:

  1. Geben Sie Ihre E-Mail-Adresse für Erneuerungsbenachrichtigungen ein
  2. Akzeptieren Sie die Let’s Encrypt-Nutzungsbedingungen
  3. Wählen Sie, ob HTTP-Traffic zu HTTPS umgeleitet werden soll (dringend empfohlen — wählen Sie Option 2)

Certbot wird automatisch:

  • Ein signiertes Zertifikat von Let’s Encrypt abrufen
  • Ihre /etc/nginx/conf.d/example.com.conf ändern, um SSL-Direktiven einzubeziehen
  • Eine HTTP-zu-HTTPS-Umleitung konfigurieren

Überprüfen Sie nach Abschluss die HTTPS-Konfiguration durch Besuch:

https://example.com

Ihr Browser sollte ein Schlosssymbol anzeigen, das bestätigt, dass die Verbindung verschlüsselt ist.

Schritt 10: Automatisieren Sie die Zertifikatverlängerung

Let's Encrypt-Zertifikate sind 90 Tage lang gültig. Wenn Sie diese vor Ablauf nicht verlängern, werden Ihren Besuchern Sicherheitswarnungen angezeigt, was das Vertrauen der Benutzer und den Traffic erheblich beeinträchtigt.

Testen Sie den Verlängerungsprozess

Bevor Sie die Automatisierung einrichten, überprüfen Sie, ob der Verlängerungsprozess ordnungsgemäß funktioniert:

sudo certbot renew --dry-run

Ein erfolgreicher Testlauf bestätigt, dass die automatische Verlängerung ohne Probleme funktioniert.

Richten Sie einen Cron-Job für automatische Verlängerung ein

Öffnen Sie die Root-Crontab:

sudo crontab -e

Fügen Sie die folgende Zeile hinzu, um zweimal täglich nach Zertifikaten zu suchen und diese zu verlängern (die empfohlene Häufigkeit):

0 0,12 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

Erklärung des Cron-Zeitplans:

  • 0 0,12 * * * — Wird jeden Tag um Mitternacht und Mittag ausgeführt
  • --quiet — Unterdrückt die Ausgabe, es sei denn, es tritt ein Fehler auf
  • --post-hook "systemctl reload nginx" — Lädt Nginx nach einer erfolgreichen Verlängerung neu, um das neue Zertifikat ohne Ausfallzeiten anzuwenden

Speichern Sie den Crontab-Editor und beenden Sie ihn. Ihre SSL-Zertifikate werden nun automatisch verlängert und halten Ihre Website sicher, ohne dass manuelle Eingriffe erforderlich sind.

Performance Optimization Tips for Nginx on CentOS 7

Sobald Ihre grundlegende Einrichtung abgeschlossen ist, sollten Sie diese Konfigurationsverbesserungen in Betracht ziehen, um die Nginx-Leistung zu maximieren:

Enable Gzip Compression

Fügen Sie Folgendes zu Ihrem nginx.conf innerhalb des http {} Blocks hinzu, um die Größe der an Clients gesendeten Antworten zu reduzieren:

gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;

Configure Browser Caching

Fügen Sie Cache-Control-Header für statische Assets hinzu, um die Serverauslastung zu reduzieren und die Seitenladezeiten zu verbessern:

location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}

Tune Worker Processes

In /etc/nginx/nginx.conf stellen Sie die Anzahl der Worker-Prozesse so ein, dass sie der Anzahl der CPU-Kerne Ihres Servers entspricht:

worker_processes auto;
worker_connections 1024;

> Für ressourcenintensive Anwendungen oder Websites mit hohem Traffic sollten Sie ein Upgrade auf Dedicated Servers von AlexHost in Betracht ziehen, die garantierte CPU-, RAM- und Speicherressourcen ohne Nachbarschaftseffekte bieten.

Verwaltung mehrerer Websites mit Nginx

Eine der größten Stärken von Nginx ist die Möglichkeit, mehrere Websites auf einem einzelnen Server über Server-Blöcke zu hosten. Für jede zusätzliche Domain müssen Sie einfach:

  1. Eine neue .conf Datei in /etc/nginx/conf.d/ erstellen
  2. Eine eindeutige server_name Direktive definieren
  3. Die root Direktive auf das entsprechende Document Root verweisen
  4. sudo nginx -t und sudo systemctl reload nginx ausführen

Wenn Sie eine grafische Benutzeroberfläche zur Verwaltung Ihres Webservers, virtueller Hosts, Datenbanken und E-Mail-Konten bevorzugen, erwägen Sie VPS mit cPanel — eine vollständig verwaltete Control-Panel-Lösung, die die Serververwaltung vereinfacht, ohne Flexibilität zu opfern.

Erkunden Sie alternativ die vollständige Palette von VPS Control Panels von AlexHost, einschließlich Plesk, DirectAdmin und anderen Optionen, die für verschiedene Workflows und technische Vorlieben geeignet sind.

Behebung häufiger Nginx-Probleme auf CentOS 7

ProblemWahrscheinliche UrsacheLösung
Nginx startet nichtPort 80/443 wird bereits verwendetFühren Sie `sudo ss -tlnpgrep :80` aus, um den konfliktierenden Prozess zu identifizieren
403 Forbidden-FehlerFalsche Dateiberechtigungen oder SELinux-KontextÜberprüfen Sie chmod/chown und wenden Sie chcon für SELinux an
502 Bad GatewayUpstream-Backend (PHP-FPM, Node.js) läuft nichtÜberprüfen Sie, ob der Backend-Service aktiv ist und der Socket/Port korrekt ist
SSL-Zertifikat wird nicht erneuertCertbot kann nicht an Port 80 gebunden werdenStellen Sie sicher, dass Port 80 offen ist und kein anderer Prozess ihn blockiert
Änderungen werden nicht wirksamKonfiguration nicht neu geladenFühren Sie sudo systemctl reload nginx nach jeder Konfigurationsänderung aus

Fazit

Sie haben Nginx auf CentOS 7 nun erfolgreich installiert, konfiguriert und gesichert. Ihr Server ist bereit, Websites mit hoher Leistung zu hosten, gleichzeitige Verbindungen effizient zu verarbeiten und Inhalte über verschlüsselte HTTPS-Verbindungen bereitzustellen — alles wesentliche Qualitäten für eine moderne, produktionsreife Web-Umgebung.

Hier ist eine Zusammenfassung der durchgeführten Schritte:

  • ✅ CentOS 7-System aktualisiert und Nginx über das EPEL-Repository installiert
  • ✅ Nginx-Service gestartet und für automatischen Start beim Booten aktiviert
  • ✅ firewalld konfiguriert, um HTTP- und HTTPS-Verkehr zu ermöglichen
  • ✅ Benutzerdefinierten Server-Block für eine Domain erstellt und konfiguriert
  • ✅ Korrekte Dateiberechtigungen und SELinux-Kontexte für das Document Root gesetzt
  • ✅ Konfiguration auf Syntaxfehler getestet, bevor Änderungen angewendet wurden
  • ✅ Website mit kostenlosem Let’s Encrypt SSL-Zertifikat über Certbot gesichert
  • ✅ Automatische Zertifikatserneuerung mit Cron-Job eingerichtet

Die Wartung eines sicheren und leistungsstarken Webservers erfordert kontinuierliche Aufmerksamkeit. Halten Sie Nginx regelmäßig aktualisiert, überwachen Sie Ihre Zugriffs- und Fehlerprotokolle und überprüfen Sie Ihre Konfiguration, wenn sich die Anforderungen Ihrer Website ändern.

Wenn Sie nach einer robusten Hosting-Grundlage für Ihre Nginx-gestützten Projekte suchen, bietet AlexHost ein umfassendes Spektrum an Lösungen — von kostengünstigen Shared Web Hosting für kleinere Websites bis hin zu hochperformanten VPS und dedizierter Infrastruktur für anspruchsvolle Anwendungen. Jeder Plan wird durch Enterprise-Hardware, 24/7 technischen Support und ein Engagement für Verfügbarkeit und Sicherheit unterstützt.