Linux-Tutorial / Nginx installieren und eine Website über HTTP und HTTPS veröffentlichen
Die Veröffentlichung einer Nginx-Website erfordert mehr als nur die Installation eines Pakets: Inhalts-Pfade, Listener, Firewall-Richtlinien, DNS und TLS müssen übereinstimmen. Überprüfen Sie die Seite zunächst lokal über HTTP, dann testen Sie den Remote-Zugriff und die Domain, bevor Sie HTTPS hinzufügen und validieren.
Verwenden Sie Netzwerkschicht-Diagnose bei Verbindungsproblemen und Firewall- und Kontoschutz, bevor Sie Dienste offenlegen. Nginx- und Zertifikat-Tool-Versionen hängen von den Repositories ab; folgen Sie der Dokumentation für die installierten Pakete und die Distribution.
Systemkonfigurationsübungen verwenden eine herkömmliche Ubuntu 26.04 LTS oder Rocky Linux 9 VM als Referenzumgebung. Container, WSL und andere Versionen können sich in Dienst- und Paketkonfiguration unterscheiden. Bereiten Sie die Konsolenwiederherstellung vor und zeichnen Sie Ihre Versionen mit der virtuellen Maschinen-Einrichtungslektion auf.
Bereiten Sie den Server, den Namen und die Zugriffspolitik vor
Verwenden Sie einen Labor-Ubuntu- oder Rocky-Linux-Server mit sudo und Konsolenwiederherstellung. linux-course.test ist ein lokaler Testname, kein Name für die Veröffentlichung in öffentlichen DNS. Für den öffentlichen Einsatz ersetzen Sie ihn durch eine echte Domain, die Sie kontrollieren, und überprüfen Sie NAT-Weiterleitung und Anbieterbeschränkungen. Prüfen Sie, ob ein anderer Dienst bereits die Ports 80 oder 443 verwendet.
sudo ss -lntp cat /etc/os-release
Installieren Sie Nginx mit dem Paket der Distribution
Verwenden Sie den ersten Block auf Ubuntu oder den zweiten auf Rocky Linux. Überprüfen Sie die Paketänderungen und folgen Sie der Repository-Richtlinie. Bewahren Sie alle vorhandenen Sites auf und fügen Sie einen separaten Serverblock hinzu, anstatt die Standardkonfiguration wahllos zu löschen.
sudo apt update sudo apt install nginx curl sudo systemctl enable --now nginx
sudo dnf install nginx curl sudo systemctl enable --now nginx
Erstellen Sie ein dediziertes Document Root und einen vollständigen Serverblock
Wenn ein Pfad bereits Daten enthält, sichern Sie diese und wählen Sie einen anderen Labornamen. Speichern Sie eine lesbare statische Seite unter /var/www/linux-course. Das Beispiel geht davon aus, dass die mit dem Paket installierte nginx.conf conf.d/*.conf enthält; prüfen Sie die tatsächliche Include-Struktur, wenn Ihr Paket davon abweicht.
sudo install -d -m 755 /var/www/linux-course
printf '<!doctype html><html lang="en"><meta charset="utf-8"><title>Linux course</title><h1>Linux course server works</h1></html>\n' | sudo tee /var/www/linux-course/index.html
sudo chmod 644 /var/www/linux-course/index.html
sudo tee /etc/nginx/conf.d/linux-course.conf > /dev/null <<'EOF'
server {
listen 80;
server_name linux-course.test;
root /var/www/linux-course;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
EOF
sudo nginx -t
Führen Sie das folgende Reload nur nach erfolgreichem nginx -t aus. Beheben Sie die gemeldete Datei und Zeile und überprüfen Sie erneut, anstatt einen funktionierenden Dienst mit ungültiger Konfiguration neu zu starten.
sudo systemctl reload nginx curl -i --resolve linux-course.test:80:127.0.0.1 http://linux-course.test/
Erwarten Sie HTTP 200 und Linux course server works. Die Option --resolve überschreibt die Namens-zu-Adresse-Zuordnung nur für diese Anfrage, ohne das systemeigene DNS zu ändern. Wenn die Standardseite angezeigt wird, prüfen Sie den angeforderten Hostnamen, server_name und die geladene Konfiguration.
Dateizugriff und Netzwerkfreigabe getrennt prüfen
Unter Rocky Linux mit aktiviertem SELinux Labels mit ls -Zd /var/www/linux-course überprüfen. Ein Standard-Policypfad kann mit sudo restorecon -Rv /var/www/linux-course neu gekennzeichnet werden; nicht standardmäßige Pfade benötigen möglicherweise dauerhafte Kennzeichnungsregeln. Beheben Sie HTTP 403 nicht durch Deaktivieren von SELinux oder Vergabe des Modus 777.
Nach lokaler Überprüfung HTTP 80/tcp und später HTTPS 443/tcp im vorgesehenen Bereich zulassen. UFW kann eine spezifische Portregel hinzufügen; mit firewalld die http/https-Dienste in der tatsächlichen Zone testen, bevor nur diese Regeln dauerhaft gemacht werden. Überprüfen Sie die Cloud-Filterung separat und erhalten Sie den SSH-Zugang.
Von einer anderen Maschine die tatsächliche Serveradresse mit Host: linux-course.test anfordern und dieselbe Seite bestätigen. Wenn der lokale Zugriff funktioniert, der Remote-Zugriff jedoch fehlschlägt, Listener-Bindung, Filter, Routen und NAT überprüfen. Eine HTTP-Fehlermeldung leitet die Untersuchung stattdessen auf den Server, den Ressourcenpfad oder die Anwendung.
Die echte Domain und HTTPS konfigurieren
- Die A- und optionalen AAAA-Einträge der echten Domain auf die vorgesehenen öffentlichen Adressen zeigen; keine unbrauchbare IPv6-Adresse veröffentlichen.
- server_name ersetzen, mit nginx -t validieren, neu laden und HTTP über die Domain aus einem anderen Netzwerk testen.
- Wählen Sie das Betriebssystem und die Nginx-Installationsmethode in den offiziellen Certbot-Anleitungen. Bei Ubuntu kann die Paketmethode apt install certbot python3-certbot-nginx verwendet werden; prüfen Sie die Repository-Anforderungen bei anderen Distributionen.
- Nach der Überprüfung des Domainbesitzes und der Erreichbarkeit der erforderlichen Ports führen Sie sudo certbot --nginx -d AKTUELLE_DOMAIN aus.
- Überprüfen Sie den Zertifikats-Hostnamen, die Kette, das Ablaufdatum und die Weiterleitungen, und testen Sie anschließend die Erneuerung mit sudo certbot renew --dry-run.
Wenn die HTTP-Validierung nicht verfügbar ist, verwenden Sie eine andere unterstützte Methode wie die DNS-Validierung. Das Abschließen der lokalen Übung stellt nicht sicher, dass öffentliche DNS und HTTPS bereit sind. Übermitteln Sie während der unverschlüsselten HTTP-Testphase keine Passwörter oder Tokens.
Fehlerbehebung und nur die Laborkonfiguration zurücksetzen
systemctl status nginx --no-pager journalctl -b -u nginx -n 50 --no-pager sudo nginx -t
Überprüfen Sie auch das konfigurierte Fehlerprotokoll und die Anforderungszeit. Um die Übung zu entfernen, sichern Sie nur deren Konfigurationsdatei, entfernen Sie sie, validieren Sie und laden Sie sie neu. Entfernen Sie Inhalte, Zertifikate, DNS- und Firewall-Änderungen nur nach Überprüfung der Abhängigkeiten, wobei bestehende Sites, gemeinsame Zertifikate und Verwaltungsregeln erhalten bleiben.




