Tutorials  /  Linux Basics

Nginx auf AlmaLinux 9 installieren und konfigurieren mit Let's Encrypt

Ccentron Redaktion · August 2025 ·8 Min. Lesezeit ·Linux Basics, Tutorial

Nginx ist ein leistungsstarker, Open-Source-Webserver, der als Reverse Proxy, Load Balancer und HTTP-Cache fungiert. Um ihn auf einer stabilen, unternehmensorientierten Plattform bereitzustellen, können Sie den Nginx-Webserver auf AlmaLinux 9 installieren. Er verarbeitet problemlos statische und dynamische Inhalte und funktioniert gut mit Technologien wie PHP und Datenbankservern.

In diesem Artikel erfahren Sie, wie Sie Nginx auf AlmaLinux 9 installieren und konfigurieren. Die Schritte umfassen die Installation von Nginx, die Verwaltung des Systemdienstes, das Einrichten eines benutzerdefinierten Server-Blocks (virtueller Host) und die Aktivierung von HTTPS mit Let's Encrypt.

Voraussetzungen

Bevor Sie beginnen, benötigen Sie:

  • Zugang zu einer AlmaLinux 9-Instanz als Nicht-Root-Benutzer mit sudo-Rechten.
VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Installieren von Nginx auf AlmaLinux 9

Sie können Nginx auf AlmaLinux aus den Standard-DNF-Paketquellen installieren. Es ist unter dem Paketnamen nginx verfügbar. Verwenden Sie die folgenden Schritte, um den DNF-Paketmanager zu aktualisieren und Nginx zu installieren.

Systempakete aktualisieren

Konsole
$ sudo dnf update

Den Nginx-Webserver installieren

Konsole
$ sudo dnf install nginx -y

Überprüfen, ob Nginx korrekt installiert ist

Konsole
$ sudo nginx -v

Ausgabe:

Konsole
nginx version: nginx/1.20.1

Den Nginx-Dienst starten

Konsole
$ sudo systemctl start nginx

HTTP-Verkehr in der Firewall aktivieren

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

Führen Sie den folgenden Befehl aus, um Firewalld zu installieren, falls es noch nicht installiert ist, und erlauben Sie SSH-Verbindungen

Konsole
$ sudo dnf install firewalld -y && sudo firewall-cmd --permanent --add-service=ssh

Starten Sie Firewalld, falls es noch nicht läuft

Konsole
$ sudo systemctl start firewalld

Firewall-Änderungen anwenden

Konsole
$ sudo firewall-cmd --reload

Überprüfen, ob Nginx im Browser funktioniert

http://server-ip-address

Den Nginx-Systemdienst verwalten

Standardmäßig installiert Nginx einen systemd-Dienst. Verwenden Sie die folgenden Schritte, um den Dienst zu verwalten und sicherzustellen, dass er konstant auf Ihrem Server läuft.

Aktivieren Sie Nginx, damit es beim Booten startet

Konsole
$ sudo systemctl enable nginx

Starten Sie Nginx, falls es noch nicht läuft

Konsole
$ sudo systemctl start nginx

Überprüfen Sie den Nginx-Systemdienst und bestätigen Sie, dass er läuft

Konsole
$ sudo systemctl status nginx

Ausgabe:

Konsole
● nginx.service - The nginx HTTP and reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
     Active: active (running) since Sun 2025-03-30 23:12:44 UTC; 1min 33s ago
   Main PID: 52297 (nginx)
      Tasks: 2 (limit: 5716)
     Memory: 2.0M
        CPU: 36ms
     CGroup: /system.slice/nginx.service
             ├─52297 "nginx: master process /usr/sbin/nginx"
             └─52298 "nginx: worker process"

Reload Nginx, um neue Konfigurationsänderungen anzuwenden

Konsole
$ sudo systemctl reload nginx

Den Nginx-Dienst neu starten

Konsole
$ sudo systemctl restart nginx

Erstellen von Nginx Virtual Host-Konfigurationen (Server Blocks)

Die Konfigurationen für virtuelle Hosts in Nginx umfassen den Servernamen, den Administrator und die Informationen zur Backend-Webanwendung. Die Standardverzeichnisse default.d und conf.d enthalten standardmäßig virtuelle Host-Konfigurationen für Nginx auf AlmaLinux, es sei denn, diese wurden geändert. Folgen Sie diesen Schritten, um einen benutzerdefinierten Server-Block mit Ihrem eigenen HTML-Inhalt zu erstellen.

Überprüfen Sie den Nginx-Systemdienst und bestätigen Sie, dass er läuft

Konsole
$ sudo systemctl status nginx

Richten Sie das Dokumentenstammverzeichnis ein und erstellen Sie Beispielinhalt

Konsole
$ sudo mkdir /usr/share/nginx/example && sudo nano /usr/share/nginx/example/index.html

Geben Sie den folgenden HTML-Anwendungscode in die index.html-Datei ein

Sample HTML Application

Powered by the Nginx Web Server

Erstellen Sie eine neue Server-Block-Datei

Konsole
$ cd /etc/nginx/conf.d/ && sudo nano example-host.conf

Geben Sie die folgenden Nginx-Konfigurationen in die example-host.conf-Datei ein. Ersetzen Sie example.com durch Ihre Domain

INI
server {
    listen       80;
    listen       [::]:80;
    server_name  example.com;

    root         /usr/share/nginx/example;
    index        index.html index.htm;

    access_log   /var/log/nginx/example.com_access.log;
    error_log    /var/log/nginx/example.com_error.log;

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

Testen Sie die Nginx-Konfigurationssyntax auf Fehler

Konsole
$ sudo nginx -t

Ausgabe:

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

Reload Nginx, um die Konfigurationsänderungen anzuwenden

Konsole
$ sudo systemctl reload nginx

Testen Sie den Zugriff auf Ihre Domain und bestätigen Sie, dass die Webanwendung geladen wird

http://your-domain.com/

Den Nginx-Webserver absichern

Nginx liefert Webanwendungen standardmäßig über HTTP, es sei denn, dies wird in den virtuellen Host-Konfigurationen angegeben. HTTPS sorgt für eine verschlüsselte Verbindung zwischen Nginx und dem Webbrowser eines Clients und gewährleistet sichere Verbindungen zum Webserver. In diesem Abschnitt erfahren Sie, wie Sie Certbot installieren, HTTPS konfigurieren und SELinux- sowie Firewall-Einstellungen anpassen.

Das EPEL-Repository installieren, das das Certbot-Tool enthält

Konsole
$ sudo dnf install epel-release -y

Systempakete aktualisieren

Konsole
$ sudo dnf update

Certbot mit Nginx-Plugin-Unterstützung installieren

Konsole
$ sudo dnf install python3-certbot-nginx -y

Ein SSL-Zertifikat mit Certbot anfordern. Ersetzen Sie example.com und admin@example.com durch Ihre tatsächliche Domain und E-Mail-Adresse

Konsole
$ sudo certbot --nginx --domain example.com --email admin@example.com --agree-tos

Hinweis: Ersetzen Sie example.com durch Ihren echten Domainnamen. Wenn Sie keinen haben, können Sie eine Testdomain verwenden oder die SSL-Konfiguration überspringen.

Reload Nginx, um die HTTPS-Konfiguration anzuwenden

Konsole
$ sudo systemctl reload nginx

Testen Sie die Nginx-Konfiguration auf Syntaxfehler

Konsole
$ sudo nginx -t

Ausgabe:

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

HTTPS-Verkehr durch die Firewall zulassen

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

Optional: Entfernen Sie HTTP-Zugang, wenn Sie nur HTTPS erzwingen möchten

Konsole
$ sudo firewall-cmd --permanent --remove-service=http

Firewalld neu laden, um die neuen Regeln anzuwenden

Konsole
$ sudo firewall-cmd --reload

Überprüfen Sie den Status von SELinux, um sicherzustellen, dass es aktiviert ist

Konsole
$ sestatus

Ausgabe:

Konsole
SELinux status:                 enabled

Installieren Sie die erforderlichen SELinux-Verwaltungstools für den semanage-Befehl

Konsole
$ sudo dnf install policycoreutils-python-utils -y

Dadurch wird sichergestellt, dass das semanage-Tool zur Verwaltung von SELinux-Kontexten verfügbar ist

Aktualisieren Sie die SELinux-Dateikontextregeln, um Nginx zu ermöglichen, Dateien in Ihrem benutzerdefinierten Verzeichnis zu lesen

Konsole
$ sudo semanage fcontext -a -t httpd_sys_content_t "/usr/share/nginx/example(/.*)?"

Wenden Sie den neuen SELinux-Kontext an

Konsole
$ sudo restorecon -Rv /usr/share/nginx/example/

Ausgabe:

Konsole
Relabeled /usr/share/nginx/example from unconfined_u:object_r:usr_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /usr/share/nginx/example/index.html from unconfined_u:object_r:usr_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0

Greifen Sie über HTTPS auf Ihre Domain im Webbrowser zu, um zu überprüfen, ob das Zertifikat funktioniert

https://example.com

Fazit

Sie haben nun Nginx auf AlmaLinux 9 eingerichtet, es für die Bereitstellung von statischen Webinhalten konfiguriert und mit HTTPS sowie SELinux-Regeln gesichert. Nginx ist ein flexibler und leistungsstarker Webserver, der problemlos skaliert werden kann, um dynamische Webanwendungen, Backend-Integrationen wie PHP oder Datenbanken sowie Produktionsbereitstellungen zu unterstützen. Von hier aus können Sie Ihre Einrichtung erweitern, indem Sie Reverse-Proxy-Regeln hinzufügen, Load Balancing aktivieren oder mit Anwendungstacks wie Laravel, Flask oder Node.js integrieren.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren