So installieren Sie Nginx unter Debian 12, 11 oder 10

Nginx ist ein leistungsstarker Webserver, der für seine hohe Leistung und seinen geringen Ressourcenverbrauch bekannt ist. Ursprünglich zur Lösung des C10k-Problems entwickelt, zeichnet er sich durch die Bereitstellung statischer Inhalte, Lastausgleich und Reverse-Proxying aus. Die Kombination von Nginx mit Debian, das für seine Stabilität und Sicherheit bekannt ist, ergibt eine robuste und zuverlässige Serverumgebung.

Hauptfunktionen von Nginx:

  • Hochleistung: Behandelt effizient mehrere gleichzeitige Verbindungen.
  • Geringe Ressourcennutzung: Optimiert für die Ausführung mit minimalem Speicher und CPU.
  • Lastverteilung: Verteilt den Datenverkehr auf mehrere Server, um die Leistung zu verbessern.
  • Reverse-Proxying: Leitet Clientanforderungen nahtlos an Backend-Server weiter.
  • Handhabung statischer Inhalte: Stellt statische Dateien schnell und effizient bereit.
  • Sicherheitsfunktionen: Unterstützt SSL/TLS für verschlüsselte Kommunikation.
  • Flexibilität: Unterstützt Protokolle wie HTTP, HTTPS, SMTP, POP3 und IMAP.

Vorteile der Kombination von Nginx mit Debian:

  • Stabilität: Der Ruf von Debian für Stabilität stellt sicher, dass Ihr Server zuverlässig bleibt.
  • Sicherheit: Die robusten Sicherheitsmaßnahmen von Debian schützen Ihren Nginx-Server vor Schwachstellen.
  • Benutzerfreundlichkeit: Das Paketverwaltungssystem von Debian vereinfacht die Installation und Wartung von Nginx.
  • Gemeinschaftliche Unterstützung: Nginx und Debian haben starke Communities, die umfangreiche Ressourcen und Support bereitstellen.

Beim Einstieg in die Einrichtung werden Sie feststellen, dass die Stabilität von Debian perfekt mit der Effizienz von Nginx harmoniert und so eine ideale Umgebung für Ihre Webanwendungen schafft. Lassen Sie uns die erforderlichen Schritte zur Installation und Konfiguration von Nginx auf einem Debian-Server näher betrachten.

Vorbereiten Ihres Systems vor der Nginx-Installation

Stellen Sie sicher, dass Ihr System aktualisiert ist, bevor Sie Nginx installieren. Dies verhindert potenzielle Konflikte während der Installation und verringert das Risiko von Kompatibilitätsproblemen und Sicherheitslücken.

Um Ihre Systempakete zu aktualisieren, führen Sie Folgendes aus:

sudo apt update && sudo apt upgrade

Dieser Befehl ruft die Liste der verfügbaren Updates ab (über apt update) und aktualisiert dann die aktuellen Softwarepakete auf die neueste Version (mithilfe apt upgrade).

Installieren Sie den NGINX-Webserver-Standard

Standardmäßig ist NGINX in den Debian-Repositories verfügbar. Dies macht den Installationsprozess unkompliziert.

Führen Sie den folgenden Befehl aus, um nginx zu installieren:

sudo apt install nginx

Der apt install Der Befehl weist das APT-Paketverwaltungsprogramm (ein Teil des Debian-Systems) an, das NGINX-Paket zu installieren.

Optional: Installieren Sie die NGINX-Vollversion

NGINX bietet eine nginx-full Version mit zusätzlichen Modulen, die in der Standardversion nicht enthalten sind. Wenn Sie mehr Funktionalität benötigen, installieren Sie die nginx-Vollversion:

sudo apt install nginx-full

Optional: Installieren Sie die NGINX-Extras Version

Für einen noch breiteren Funktionsumfang betrachten Sie die nginx-extras Version. So installieren Sie:

sudo apt install nginx-extras

Überprüfen der NGINX-Installation

Stellen Sie nach der Installation sicher, dass NGINX ordnungsgemäß ausgeführt wird.

Überprüfen Sie den Status des NGINX-Dienstes wie folgt:

systemctl status nginx

NGINX funktioniert ordnungsgemäß, wenn die Ausgabe „aktiv (wird ausgeführt)“ anzeigt. Andernfalls enthält die Ausgabe Einzelheiten zum Fehler zur Fehlerbehebung.

Wenn NGINX nicht aktiviert ist, verwenden Sie:

sudo systemctl enable nginx --now

Konfigurieren Sie die UFW-Firewall für Nginx

UFW oder Uncomplicated Firewall bietet eine benutzerfreundliche Oberfläche zum Verwalten von iptables-Firewallregeln. Es ist unter Debian nicht standardmäßig installiert, Sie können es jedoch aus den Standard-Repositorys herunterladen. Wenn Ihr Server öffentlich zugänglich ist, sollten Sie aus Sicherheitsgründen UFW-Regeln einrichten.

Installieren Sie die UFW-Firewall

Wenn UFW noch nicht auf Ihrem System installiert ist, können Sie dies durch Ausführen des folgenden Befehls tun:

sudo apt install ufw

UFW-Firewall aktivieren

Sobald die Installation abgeschlossen ist, können Sie UFW durch Ausführen des folgenden Befehls aktivieren:

sudo ufw enable

Die Standardeinstellungen von UFW blockieren alle eingehenden Verbindungen und lassen alle ausgehenden Verbindungen zu. Dies bedeutet, dass unerwünschte Systemzugriffe verhindert werden, Ihr System jedoch die Außenwelt erreichen kann.

Auflisten der installierten Anwendungen

UFW verwendet Anwendungsprofile, also Regelsätze für bestimmte Anwendungen. Um installierte Anwendungen mit UFW-Profilen anzuzeigen, führen Sie Folgendes aus:

sudo ufw app list

Konfigurieren von UFW-Regeln für NGINX

Je nach Bedarf können Sie UFW so konfigurieren, dass NGINX-Verbindungen über HTTP (Port 80), HTTPS (Port 443) oder beides zugelassen werden.

Nur für HTTP (Port 80):

sudo ufw allow 'Nginx HTTP'

Nur HTTPS (Port 443):

sudo ufw allow 'Nginx HTTPS'

Sowohl HTTP als auch HTTPS:

sudo ufw allow 'Nginx Full'

Überprüfen der Firewall-Regeln

Um zu bestätigen, dass Ihre Regeln vorhanden sind, überprüfen Sie die aktiven Firewall-Regeln:

sudo ufw status

Testen der NGINX-Konfiguration

Stellen Sie nach dem Einrichten von UFW sicher, dass Sie die NGINX-Startseite sehen können. Rufen Sie in Ihrem Browser die IP-Adresse Ihres Servers auf:

http://your_server_ip

Oder für lokale Setups:

http://localhost

Angenommen, Sie sehen die NGINX-Standardseite. Ihre Konfiguration funktioniert. Damit ist die Firewall-Einrichtung für NGINX unter Debian abgeschlossen.

NGINX-Serverblöcke erstellen

Wie die virtuellen Hosts von Apache können Sie mit NGINX-Serverblöcken mehrere Domänen von einem Server aus hosten. Jede Domäne hat ihre eigenen Konfigurationseinstellungen. Ersetzen Sie für diese Anleitung „example.com“ durch Ihren tatsächlichen Domänennamen.

Erstellen Sie ein Verzeichnis für Ihre Domain

Richten Sie ein Verzeichnis für Ihre Domain ein. In diesem Verzeichnis werden die Dateien Ihrer Website gespeichert:

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

Weisen Sie dem Nginx-Verzeichnis den Besitz zu

Weisen Sie den Verzeichnisbesitz dem Benutzer und der Gruppe „www-data“ zu, die NGINX normalerweise verwendet:

sudo chown -R www-data:www-data /var/www/example.com/

Erstellen einer Nginx-Test-HTML-Seite

Erstellen Sie eine Test-HTML-Seite in Ihrem Domänenverzeichnis, um Ihr NGINX-Setup zu bestätigen:

sudo nano /var/www/example.com/index.html

Fügen Sie den folgenden HTML-Code hinzu:

<html>
 <head>
  <title>Welcome to Example.com</title>
 </head>
 <body>
   <h1>Success! The NGINX server block is working!</h1>
 </body>
</html>

Nachdem Sie den Code in den Nano-Editor eingefügt haben, drücken Sie STRG+O, um die Änderungen zu speichern, und dann STRG+X, um den Editor zu verlassen.

Erstellen Sie einen NGINX-Serverblock für die Testseite

Richten Sie einen Serverblock für Ihre Website ein:

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

Fügen Sie die folgende Konfiguration hinzu:

server {
 listen 80;
 listen [::]:80;

 root /var/www/example.com/;
 index index.html index.htm index.nginx-debian.html;

 server_name example.com www.example.com;

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

Diese Konfiguration weist NGINX an, auf Port 80 auf eingehende Verbindungen zu warten, sowohl für example.com Und www.example.com. Ersetzen Sie unbedingt die root Direktive durch den Verzeichnispfad, den Sie zuvor erstellt haben.

Aktivieren Sie den NGINX-Serverblock über einen symbolischen Link

Aktivieren Sie Ihren Serverblock, indem Sie einen symbolischen Link vom Verzeichnis „sites-available“ zum Verzeichnis „sites-enabled“ erstellen:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Endgültige Konfiguration und Testlauf

Zuletzt bearbeiten wir die Standardkonfigurationsdatei von NGINX und führen einen Testlauf durch, um sicherzustellen, dass alles wie erwartet funktioniert.

Bearbeiten der NGINX-Konfigurationsdatei

Öffne das nginx.conf Datei:

sudo nano /etc/nginx/nginx.conf

Suchen Sie nach der Zeile server_names_hash_bucket_size 64; innerhalb der http {} blockieren und auskommentieren.

Mit dieser Anweisung kann NGINX lange Domänennamen und eine größere Anzahl von Servernamen verarbeiten, indem zu diesem Zweck mehr Speicher zugewiesen wird. Achten Sie jedoch darauf, diesen Wert nicht zu hoch einzustellen, da sonst möglicherweise mehr Speicher als nötig verbraucht wird.

Speichern Sie die Änderungen und verlassen Sie den Editor durch Drücken von STRG+O und STRG+X.

Testen Sie Ihre NGINX-Konfiguration

Bevor Sie NGINX neu starten, sollten Sie überprüfen, ob Ihre Konfigurationssyntax korrekt ist. Führen Sie den folgenden Befehl aus, um einen Testlauf zu starten:

sudo nginx -t

Wenn Ihre Konfiguration korrekt ist, sehen Sie diese Ausgabe:

nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung nginx: Der Test der Konfigurationsdatei /etc/nginx/nginx.conf war erfolgreich

Diese Meldungen zeigen an, dass Ihre NGINX-Konfiguration erfolgreich validiert wurde.

Überprüfen Ihres Serverblocks

Um sicherzustellen, dass Ihr Serverblock ordnungsgemäß funktioniert, öffnen Sie Ihre Domain in einem Webbrowser. Sie sollten die Testseite sehen, die bestätigt, dass Ihr Serverblock aktiv ist.

Zusätzliche Nginx-Befehle

Verbessern der Dateisicherheit auf Ihrem Webserver

Die Sicherheit der Dateien und Ordner auf Ihrem Webserver ist von größter Bedeutung. Vermeiden Sie zu großzügige Zugriffsrechte. Verwenden Sie diese Befehle, um die richtigen Berechtigungen für alle Dateien und Verzeichnisse in Ihrem Webroot festzulegen.

Denken Sie daran, zu ersetzen /var/www/example.com/ mit Ihrem Webroot-Pfad:

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Diese Befehle legen für den Eigentümer Lese- und Ausführungsberechtigungen für Verzeichnisse sowie Lese- und Schreibberechtigungen für Dateien fest. Gruppen und andere erhalten nur Lesezugriff. Passen Sie diese Berechtigungen den Anforderungen Ihrer Anwendung an.

Nginx-Sicherheit mit dem kostenlosen SSL-Zertifikat von Let’s Encrypt

Die Verwendung des HTTPS-Protokolls gewährleistet die Sicherheit des Webservers. Let’s Encrypt stellt ein kostenloses SSL-Zertifikat zur Verfügung. Installieren Sie das Certbot-Paket mit:

sudo apt install python3-certbot-nginx

Starten Sie anschließend die Zertifikatserstellung:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Ersetzen Sie es durch Ihre E-Mail-Adresse und Ihren Domänennamen. Dieser Befehl richtet HTTPS mit den erforderlichen Sicherheitsfunktionen ein.

Einrichten der automatischen Zertifikatserneuerung

Let’s Encrypt-Zertifikate sind 90 Tage lang gültig. Richten Sie automatische Verlängerungen mit dem Certbot-Skript ein. Testen Sie den Vorgang:

sudo certbot renew --dry-run

Wenn dies erfolgreich war, fügen Sie den Erneuerungsbefehl zu crontab hinzu:

sudo crontab -e

Fügen Sie diese Zeile ein, um täglich um Mitternacht zu erneuern:

00 00 */1 * * /usr/sbin/certbot-auto renew

Nginx-Serverprotokolle

Überwachen Sie Ihre Serverprotokolle für einen gut gewarteten Webserver. Standardmäßig befinden sich die Protokolle in /var/log/nginx. Listen Sie sie auf mit:

cd /var/log/nginx && ls -l

Die wichtigsten Logdateien sind die access.log Und error.logUm Protokolle in Echtzeit zu überwachen, verwenden Sie die tail -f Befehl gefolgt vom Pfad zum Protokoll:

tail -f /var/log/nginx/access.log

Nginx aktualisieren

Bevor Sie Ihren Nginx-Server aktualisieren, ist es ratsam, ein Backup Ihrer aktuellen Konfigurationen zu erstellen. Um Ihr Haupt- nginx.conf Datei, verwenden Sie den folgenden Befehl:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

In Fällen, in denen Sie Ihr Nginx-Setup umfassend angepasst haben, möchten Sie möglicherweise Ihr gesamtes Nginx-Verzeichnis sichern:

sudo cp -r /etc/nginx/ /etc/nginx-bkup

Nachdem Ihre Konfigurationen sicher gesichert wurden, können Sie nun mit der Aktualisierung von Nginx fortfahren:

sudo apt update
sudo apt upgrade

Insbesondere bei komplexen Setups empfiehlt es sich, Ihre Konfigurationen regelmäßig zu sichern.

Entfernen Sie Nginx

Wenn Sie Nginx auf Ihrem Server nicht mehr benötigen, können Sie es mit den folgenden Schritten entfernen. Stellen Sie zunächst sicher, dass der Nginx-Dienst gestoppt ist:

sudo systemctl disable nginx --now

Als nächstes entfernen Sie das gesamte Nginx-Paket:

sudo apt remove nginx

Möglicherweise finden Sie noch Reste von Nginx-Konfigurationen im /etc/nginx Verzeichnis. Um diese zu entfernen, verwenden Sie den Befehl:

sudo rm -R /etc/nginx/

Denken Sie daran, dass dadurch alle Ihre benutzerdefinierten Konfigurationsdateien entfernt werden. Stellen Sie daher sicher, dass Sie alles, was Sie benötigen, gesichert haben, bevor Sie mit diesem Schritt fortfahren.

Konfigurieren Sie die Protokollrotationsparameter in Nginx

Nginx enthält standardmäßig eine Funktion zur täglichen Protokollrotation. Sie können diese Einstellungen jedoch nach Ihren Bedürfnissen anpassen.

Access-Konfigurationsdatei für die Protokollrotation

Um die Einstellungen für die Protokollrotation zu ändern, müssen Sie auf die Konfigurationsdatei zugreifen. So können Sie sie mit dem Nano-Texteditor öffnen:

sudo nano /etc/nginx/logrotate.d/nginx

Sobald Sie die Datei öffnen, sehen Sie einen Inhalt, der dem folgenden ähnelt. Passen Sie die Anweisungen in dieser Datei an Ihre Anforderungen hinsichtlich Protokollaufbewahrung und -rotation an, insbesondere wenn Sie Überwachungstools wie fail2ban verwenden.

Beispiel einer Protokollrotationskonfigurationsdatei

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Grundlegendes zu den primären Konfigurationsparametern

Bei dieser Konfiguration konzentrieren sich Systemadministratoren normalerweise auf zwei Haupteinstellungen:

  1. Täglich: Mit dieser Einstellung legen Sie die Häufigkeit der Protokollrotation fest. Die Standardeinstellung ist „täglich“, Sie können sie jedoch auf „wöchentlich“ oder „monatlich“ ändern. Tägliche Rotationen vereinfachen jedoch normalerweise die Protokollverwaltung.
  2. Drehen 14: Diese Zahl teilt dem System mit, wie viele Protokolldateien aufbewahrt werden sollen. Bei der Einstellung „14“ werden beispielsweise die letzten 14 Protokolle aufbewahrt. Wenn Sie nur die Protokolle einer Woche speichern möchten, ändern Sie diese Zahl auf „7“.

Obwohl Sie bei Nginx andere Einstellungen ändern können, sollten Sie Änderungen immer mit Bedacht vornehmen. Wenn Sie Einstellungen ändern, ohne sich über ihre Auswirkungen im Klaren zu sein, kann dies zu unerwarteten Ergebnissen führen. Stellen Sie sicher, dass Sie diese Einstellungen Ihren Anforderungen entsprechend ändern, ohne unbeabsichtigte Probleme zu verursachen.

Denken Sie daran, dass es für die Protokollverwaltung keinen einheitlichen Ansatz gibt. Bewerten Sie immer Ihre spezifische Umgebung und Anforderungen, bevor Sie Änderungen vornehmen.

Abschließende Gedanken

In diesem Leitfaden haben wir die Einrichtung von Nginx unter Debian durchgegangen und dabei Installation, Konfiguration und grundlegende Optimierung behandelt. Indem Sie die Effizienz von Nginx mit der Stabilität von Debian kombinieren, haben Sie eine solide Grundlage für Ihren Webserver geschaffen. Denken Sie daran, Ihren Server auf dem neuesten Stand zu halten und zusätzliche Nginx-Module für erweiterte Funktionen zu erkunden. Wenn Sie auf Probleme stoßen, sind die starken Communities rund um Debian und Nginx immer großartige Ressourcen. Danke, dass Sie mitgemacht haben, und viel Spaß beim Hosten!

Joshua James
Folgen Sie mir
Letzte Artikel von Joshua James (Alle anzeigen)

Hinterlasse einen Kommentar