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

Den Nginx-Webserver installieren

$ sudo dnf install nginx -y

Überprüfen, ob Nginx korrekt installiert ist

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

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

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

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

Ausgabe:

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.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: