Wie man Nginx auf AlmaLinux 9 installiert und konfiguriert
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.
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 update
Den Nginx-Webserver installieren
$ sudo dnf install nginx -y
Überprüfen, ob Nginx korrekt installiert ist
$ sudo nginx -v
Ausgabe:
nginx version: nginx/1.20.1
Den Nginx-Dienst starten
$ sudo systemctl start nginx
HTTP-Verkehr in der Firewall aktivieren
$ 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
$ sudo dnf install firewalld -y && sudo firewall-cmd --permanent --add-service=ssh
Starten Sie Firewalld, falls es noch nicht läuft
$ sudo systemctl start firewalld
Firewall-Ä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 nginx
Starten 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 nginx
Ausgabe:
● 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 nginx
Den Nginx-Dienst neu starten
$ 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
$ sudo systemctl status nginx
Richten Sie das Dokumentenstammverzeichnis ein und erstellen Sie Beispielinhalt
$ 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
$ 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
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 -t
Ausgabe:
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
$ 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
$ sudo dnf install epel-release -y
Systempakete aktualisieren
$ sudo dnf update
Certbot mit Nginx-Plugin-Unterstützung installieren
$ 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
$ 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
$ sudo systemctl reload nginx
Testen Sie die Nginx-Konfiguration auf Syntaxfehler
$ sudo nginx -t
Ausgabe:
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
$ sudo firewall-cmd --permanent --add-service=https
Optional: Entfernen Sie HTTP-Zugang, wenn Sie nur HTTPS erzwingen möchten
$ sudo firewall-cmd --permanent --remove-service=http
Firewalld neu laden, um die neuen Regeln anzuwenden
$ sudo firewall-cmd --reload
Überprüfen Sie den Status von SELinux, um sicherzustellen, dass es aktiviert ist
$ sestatus
Ausgabe:
SELinux status: enabled
Installieren Sie die erforderlichen SELinux-Verwaltungstools für den semanage-Befehl
$ 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
$ 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: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.