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.
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
$ sudo dnf updateDen Nginx-Webserver installieren
$ sudo dnf install nginx -yÜberprüfen, ob Nginx korrekt installiert ist
$ sudo nginx -vAusgabe:
nginx version: nginx/1.20.1Den Nginx-Dienst starten
$ sudo systemctl start nginxHTTP-Verkehr in der Firewall aktivieren
$ sudo firewall-cmd --permanent --add-service=httpFühren Sie den folgenden Befehl aus, um Firewalld zu installieren, falls es noch nicht installiert ist, und erlauben Sie SSH-Verbindungen
$ sudo dnf install firewalld -y && sudo firewall-cmd --permanent --add-service=sshStarten Sie Firewalld, falls es noch nicht läuft
$ sudo systemctl start firewalldFirewall-Änderungen anwenden
$ 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
$ sudo systemctl enable nginxStarten Sie Nginx, falls es noch nicht läuft
$ sudo systemctl start nginxÜberprüfen Sie den Nginx-Systemdienst und bestätigen Sie, dass er läuft
$ sudo systemctl status nginxAusgabe:
● 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
$ sudo systemctl reload nginxDen Nginx-Dienst neu starten
$ sudo systemctl restart nginxErstellen 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
$ sudo systemctl status nginxRichten Sie das Dokumentenstammverzeichnis ein und erstellen Sie Beispielinhalt
$ sudo mkdir /usr/share/nginx/example && sudo nano /usr/share/nginx/example/index.htmlGeben 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
$ cd /etc/nginx/conf.d/ && sudo nano example-host.confGeben Sie die folgenden Nginx-Konfigurationen in die example-host.conf-Datei ein. Ersetzen Sie example.com durch Ihre Domain
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
$ sudo nginx -tAusgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulReload Nginx, um die Konfigurationsänderungen anzuwenden
$ sudo systemctl reload nginxTesten 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
$ sudo dnf install epel-release -ySystempakete aktualisieren
$ sudo dnf updateCertbot mit Nginx-Plugin-Unterstützung installieren
$ sudo dnf install python3-certbot-nginx -yEin SSL-Zertifikat mit Certbot anfordern. Ersetzen Sie example.com und admin@example.com durch Ihre tatsächliche Domain und E-Mail-Adresse
$ sudo certbot --nginx --domain example.com --email admin@example.com --agree-tosHinweis: 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
$ sudo systemctl reload nginxTesten Sie die Nginx-Konfiguration auf Syntaxfehler
$ sudo nginx -tAusgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulHTTPS-Verkehr durch die Firewall zulassen
$ sudo firewall-cmd --permanent --add-service=httpsOptional: Entfernen Sie HTTP-Zugang, wenn Sie nur HTTPS erzwingen möchten
$ sudo firewall-cmd --permanent --remove-service=httpFirewalld neu laden, um die neuen Regeln anzuwenden
$ sudo firewall-cmd --reloadÜberprüfen Sie den Status von SELinux, um sicherzustellen, dass es aktiviert ist
$ sestatusAusgabe:
SELinux status: enabledInstallieren Sie die erforderlichen SELinux-Verwaltungstools für den semanage-Befehl
$ sudo dnf install policycoreutils-python-utils -yDadurch 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
$ sudo semanage fcontext -a -t httpd_sys_content_t "/usr/share/nginx/example(/.*)?"Wenden Sie den neuen SELinux-Kontext an
$ sudo restorecon -Rv /usr/share/nginx/example/Ausgabe:
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:s0Greifen 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.
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.