GNU/Linux >> LINUX-Kenntnisse >  >> AlmaLinux

So installieren Sie Nginx auf AlmaLinux 8

NGINX ist eine kostenlose Open-Source-HTTP-Server-Software. Zusätzlich zu seinen HTTP-Serverfunktionen kann NGINX auch als Proxy-Server für E-Mail (IMAP, POP3 und SMTP) und als Reverse-Proxy und Load Balancer für HTTP-, TCP- und UDP-Server fungieren. Das Ziel hinter NGINX war es, den schnellsten Webserver zu schaffen, und die Aufrechterhaltung dieser Exzellenz ist nach wie vor ein zentrales Ziel des Nginx-Projekts. NGINX schlägt Apache und andere Server in Benchmarks, die die Leistung von Webservern messen, und ist laut W3Tech jetzt der am häufigsten verwendete Webserver.

Im Tutorial erfahren Sie, wie SieNginx auf AlmaLinux 8 mit einem kostenlosen TLS/SSL-Zertifikat von Let’s Encrypt installieren.

Voraussetzungen

  • Empfohlenes Betriebssystem: AlmaLinux 8.
  • Benutzerkonto: Ein Benutzerkonto mit sudo-Privilegien oder Root-Zugriff (su-Befehl) .

Betriebssystem aktualisieren

Aktualisieren Sie Ihr AlmaLinux Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:

sudo dnf upgrade --refresh

Das Tutorial verwendet den sudo-Befehl und vorausgesetzt, Sie haben den Sudo-Status .

So überprüfen Sie den Sudo-Status Ihres Kontos:

sudo whoami

Beispielausgabe, die den Sudo-Status zeigt:

[joshua@localhost ~]$ sudo whoami
root

Um ein bestehendes oder neues Sudo-Konto einzurichten, besuchen Sie unser Tutorial zum So fügen Sie einen Benutzer zu Sudoern auf AlmaLinux hinzu .

So verwenden Sie das Root-Konto verwenden Sie den folgenden Befehl mit dem Root-Passwort, um sich anzumelden.

su

Installieren Sie Nginx

Methode 1. Installieren Sie Nginx von AlmaLinux AppStream

Die erste Methode besteht darin, Nginx aus dem AlmaLinux-App-Stream zu installieren. Diese Version ist älter, aber stabil und sicher. Wenn Sie einen primären Webserver oder Reverse-Proxy ausführen müssen, wird häufig die Installation des App Stream-Repositorys empfohlen.

Führen Sie den folgenden Befehl aus, um Nginx zu installieren.

sudo dnf install nginx

Beispielausgabe:

Geben Sie "Y" ein , und drücken Sie dann die "ENTER-TASTE" um mit der Installation fortzufahren.

Überprüfen Sie als Nächstes den Versionsaufbau und ob die Installation erfolgreich war.

sudo nginx -v

Beispielausgabe:

nginx version: nginx/1.14.1

Beachten Sie, dass Ihre Ausgaben je nach aktiviertem Modul unterschiedlich sind.

Bevor Sie fortfahren, müssen Sie den Nginx-Dienst starten.

sudo systemctl start nginx

Überprüfen Sie als Nächstes den Status, um sicherzustellen, dass keine Fehler vorliegen.

systemctl status nginx

Beispielausgabe, wenn alles korrekt funktioniert:

Methode 2. Nginx von EPEL installieren

Die zweite Option besteht darin, Nginx aus dem EPEL-Repository zu installieren. Dadurch erhalten Sie eine viel aktuellere Version von Nginx, die immer noch als stabil gilt, als wenn Sie die veralteten neuesten Versionen von Nginx selbst installieren. Der Vorgang ist relativ einfach.

Installieren Sie zuerst das EPEL-Repository:

sudo dnf install epel-release

Beispielausgabe:

Geben Sie „J“ ein Drücken Sie dann die "ENTER-TASTE" um mit der Installation fortzufahren.

Jetzt mit dem EPEL installiert haben, müssen Sie die Nginx-Module zurücksetzen.

sudo dnf module reset nginx

Listen Sie als Nächstes die verfügbaren Module auf, die mit dnf aus allen bekannten Repositories verfügbar sind.

sudo dnf module list nginx

Beispielausgabe:

Wie oben können Sie entweder zu einer höheren Version von Stable oder Mainline wechseln. Beachten Sie, dass die stabile Version immer die Build-Nummer hat und die Hauptlinie natürlich Hauptlinie ist.

Um eines der neuen Module von EPEL zu aktivieren, verwenden Sie Folgendes in Ihrem Terminal.

Neuestes Stable aktivieren:

sudo dnf module enable nginx:1.20

Hinweis für stabiles Nginx EPEL: Dies kann sich in Zukunft ändern. Achten Sie darauf, die Module aufzulisten und nicht nur zu kopieren und einzufügen.

Neueste Hauptleitung aktivieren:

sudo dnf module enable nginx:mainline

Installieren Sie jetzt Nginx:

sudo dnf install nginx

Beispielausgabe:

Geben Sie "Y" ein Drücken Sie dann die "ENTER-TASTE" um mit der Installation fortzufahren.

Überprüfen Sie als Nächstes den Versionsaufbau und ob die Installation erfolgreich war.

sudo nginx -v

Beispielausgabe (Mainline):

nginx version: nginx/1.19.10

Beachten Sie, dass Ihre Ausgaben je nach aktiviertem Modul unterschiedlich sind.

Bevor Sie fortfahren, müssen Sie den Nginx-Dienst starten.

sudo systemctl enable nginx --now

Überprüfen Sie als Nächstes den Status, um sicherzustellen, dass keine Fehler vorliegen.

systemctl status nginx

Beispielausgabe, wenn alles korrekt funktioniert:

Firewall-Regeln konfigurieren

Es fügt bei der Installation von Nginx nicht automatisch Firewall-Regeln zu den Standardports 80 oder 443 hinzu. Bevor Sie fortfahren, sollten Sie die folgenden Regeln festlegen, dies hängt davon ab, welche Ports Sie verwenden werden, aber alle Optionen sind aufgelistet.

Port 80 oder HTTP öffnen:

sudo firewall-cmd --permanent --zone=public --add-service=http

Port 443 oder HTTPS öffnen:

sudo firewall-cmd --permanent --zone=public --add-service=https

Firewall neu laden, damit die Änderungen wirksam werden

sudo firewall-cmd --reload

Nginx-Server konfigurieren

Sie müssen die IP-Adresse des Servers für die Einrichtung bereithalten. Der einfachste Weg, dies zu tun, ist wie folgt.

Server-IP-Adresse finden

Sie müssen die IP-Adresse des Servers für die Einrichtung vorbereiten. Der einfachste Weg, dies zu tun, ist wie folgt.

curl -4 icanhazip.com

Beispielausgabe:

XXX.XXX.XXX.XXX IP address

Wenn die Befehle nicht funktionieren, haben Sie höchstwahrscheinlich das Curl-Paket nicht installiert. Führen Sie den folgenden Befehl aus:

sudo dnf install curl -y

Sobald Sie die IP-Adresse Ihres Servers haben, öffnen Sie Ihren bevorzugten Internetbrowser und prüfen Sie, ob die Standard-Zielseite funktioniert.

http://your_server_ip

Sie sollten die folgende Seite in Ihrem Internetbrowser erhalten. Wenn Sie diese Seite nicht erhalten, sondern stattdessen eine Nginx-Fehlerseite, ist das in Ordnung, da die EPEL-Version abweichen kann. Sie testen, um sicherzustellen, dass Sie den Nginx-Server erreichen können.

Site-Quellverzeichnis einrichten

In der Anleitung richten Sie eine Domain namens example.com ein , aber Sie sollten dies durch Ihren Domainnamen ersetzen . Das Tutorial erstellt die Webverzeichnisse und konfiguriert die Site-Dateien im übergeordneten Verzeichnis /var/www/ .

Erstellen Sie zuerst das Verzeichnis für example.com , wie folgt, mit dem "-p" Flag, um alle erforderlichen übergeordneten Verzeichnisse zu erstellen:

sudo mkdir -p /var/www/your_domain/html

Zweitens müssen Sie den Eigentümer des Verzeichnisses zuweisen.

sudo chown -R $USER:$USER /var/www/your_domain/html

Drittens weisen Sie die Berechtigungen des Verzeichnisses zu, sodass der Eigentümer die Dateien lesen, schreiben und ausführen kann, während er Gruppen und anderen nur Lese- und Ausführungsberechtigungen gewährt. Sie können den folgenden Befehl eingeben:

sudo chmod -R 755 /var/www/your_domain

Alternativ können Sie /usr/share/nginx/html verwenden stattdessen das Verzeichnis /var/www Verzeichnismethode wird neuen Benutzern empfohlen.

Test-HTML-Seite einrichten

Erstellen Sie viertens eine Testseite, mit der Sie bestätigen, dass Ihr Nginx-Server betriebsbereit ist.

nano /var/www/your_domain/html/index.html

Innerhalb des Nano-Editors und der neuen Datei, die Sie erstellt haben. Geben Sie Folgendes ein.

<html>
 <head>
  <title>Welcome to your_domain!</title>
 </head>
 <body>
   <h1>Success!  The your_domain server block is working!</h1>
 </body>
</html>

Speichern Sie die Datei (STRG+O), Beenden Sie dann (STRG+X) .

Nginx-Serverblock erstellen

Standardmäßig wird der Nginx-Serverblock, ähnlich wie Apache Virtual Hosts, in der /etc/nginx/conf.d behandelt Verzeichnis. Die Nginx-Installation unterscheidet sich jedoch von verschiedenen Versionen und Distributionen, die entweder die conf.d verwenden oder Websites verfügbar/Websites aktiviert standardmäßig. Für das Tutorial werden die Verzeichnisse der Site verwendet, um einen Standard einzuhalten.

Machen Sie zuerst die für Websites verfügbaren Verzeichnisse erforderlich und für Websites aktiviert . Nginx-Benutzer wären auch mit diesem Setup vertraut.

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

Öffnen Sie als Nächstes Ihre nginx.conf-Datei und entfernen oder kommentieren Sie die „include /etc/nginx/default.d/*.conf;“ und fügen Sie direkt darunter include „/etc/nginx/sites-enabled/*.conf;“ hinzu .

Nur Beispiel:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

###EDIT HERE###
#  include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
}

Wie oben ein “#” Kommentar wurde zu include conf.d hinzugefügt line und sites-enabled einschließen wurde hinzugefügt.

Speichern Sie die Datei (STRG+O) und beenden (STRG+X) .

Erstellen Sie als Nächstes Ihre Serverblock-Konfigurationsdatei. Der Name your_domain.conf wird für das Tutorial verwendet, kann aber beliebig benannt werden.

sudo nano /etc/nginx/sites-available/your_domain.conf

Sie können den folgenden Beispielcode in den Block einfügen. Dies ist nur ein nur-HTTP-Beispiel für grundlegende Tests.

server {
 listen 80;
 listen [::]:80;

 root /var/www/your_domain/html;

  index index.html index.htm;
  server_name your_domain www.your_domain;

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

Das Beispiel zeigt, dass Ihr Server auf zwei Servernamen wartet, "Ihre_Domäne" auf Port 80.

Sie müssen das Stammverzeichnis in den Namen/Speicherort des von Ihnen erstellten Stammverzeichnisses ändern.

Aktivierter Nginx-Serverblock

Sie müssen die Konfigurationsdateien von „sites-available“ zu „sites-enabled“ in Ihrem Nginx-Verzeichnis verknüpfen, um Nginx-Serverblöcke zu aktivieren. Dies kann mit dem Befehl ln -s wie folgt erfolgen.

sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Endgültige Konfiguration &Testlauf

Im letzten Schritt müssen Sie Ihre standardmäßige nginx.conf öffnen Datei.

sudo nano /etc/nginx/nginx.conf

Und kommentieren Sie die folgende Zeile aus.

server_names_hash_bucket_size 64;

Die Hash-Bucket-Größe des Servernamens wird geändert, da manchmal Probleme beim Hinzufügen zusätzlicher Server auftreten.

Testen Sie als Nächstes Ihr Nginx, um sicherzustellen, dass es funktioniert, bevor Sie es ordnungsgemäß neu starten.

sudo nginx -t

Die Ausgabe sollte lauten, wenn keine Fehler in der Syntax:

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

Wenn Sie die folgende ok-Ausgabe haben, starten Sie den Nginx-Server neu, damit die Änderungen stattfinden.

sudo systemctl restart nginx

Öffnen Sie nun Ihren Internetbrowser und geben Sie den Domänennamen des Servers ein. Sie sollten sehen, dass Ihr Serverblock aktiv ist.

Nginx mit Let’s Encrypt SSL Free Certificate sichern

Idealerweise möchten Sie Ihr Nginx auf HTTPS mit einem SSL-Zertifikat ausführen . Verwenden Sie dazu am besten Let’s Encrypt eine kostenlose, automatisierte und offene Zertifizierungsstelle, die von der gemeinnützigen Internet Security Research Group (ISRG) betrieben wird .

Installieren Sie zuerst das EPEL -Repository und das mod_ssl Paket für besser aktualisierte Pakete und Sicherheit.

sudo dnf install epel-release mod_ssl -y

Installieren Sie als Nächstes das certbot-Paket wie folgt:

sudo dnf install python3-certbot-nginx -y

Führen Sie nach der Installation den folgenden Befehl aus, um die Erstellung Ihres Zertifikats zu starten:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com

Dies ist das ideale Setup, das erzwungene HTTPS-301-Umleitungen, Strict-Transport-Security-Header und OCSP-Stapling umfasst. Passen Sie einfach E-Mail und Domainnamen an Ihre Anforderungen an.

Jetzt lautet Ihre URL HTTPS://www.example.com statt HTTP://www.example.com .

Beachten Sie, wenn Sie die alte HTTP-URL verwenden , wird automatisch auf HTTPS umgeleitet .

Optional können Sie einen Cronjob einrichten, um die Zertifikate automatisch zu erneuern. Certbot bietet ein Skript an, das dies automatisch durchführt, und Sie können zuerst testen, ob alles funktioniert, indem Sie einen Probelauf durchführen.

sudo certbot renew --dry-run

Wenn alles funktioniert, öffnen Sie Ihr Crontab-Fenster mit dem folgenden Terminalbefehl.

sudo crontab -e

Geben Sie als Nächstes die Zeit an, zu der es automatisch verlängert werden soll. Dies sollte mindestens täglich überprüft werden, und wenn das Zertifikat erneuert werden muss, aktualisiert das Skript das Zertifikat nicht. Wenn Sie Hilfe dabei benötigen, einen guten Zeitpunkt zum Einstellen zu finden, verwenden Sie das kostenlose Tool crontab.guru.

00 00 */1 * * /usr/sbin/certbot-auto renew

Speichern (STRG+O) Beenden Sie dann (STRG+X), und der Cronjob wird automatisch aktiviert.

Verwalten des Nginx-Dienstes

Nachdem Sie Nginx erfolgreich auf Ihrem Server ausgeführt haben, lauten einige Management-Keynotes wie folgt.

So stoppen Sie den Nginx-Webserver:

sudo systemctl stop nginx

So starten Sie den Nginx-Webserver:

sudo systemctl start nginx

So starten Sie den Nginx-Webserver neu:

sudo systemctl restart nginx

So laden Sie den Nginx-Webserver neu (Für kleinere Änderungen, die keinen Neustart erfordern) :

sudo systemctl reload nginx

So deaktivieren Sie Nginx beim Serverstart:

sudo systemctl disable nginx

So starten Sie Nginx beim Serverstart (wird bei der Installation automatisch aktiviert) :

sudo systemctl enable nginx

Zugriff auf Nginx-Serverprotokolle

Nginx-Protokollverzeichnis

Standardmäßig befinden sich alle NGINX-Zugriffs-/Fehlerprotokolle, sofern Sie sie nicht geändert haben, im Protokollverzeichnis, das der folgende Befehl anzeigen kann.

Navigieren Sie zuerst zum Protokollverzeichnis und listen Sie die Dateien auf:

cd /var/log/nginx && ls -l

Sie sollten die folgenden Zugriffs- und Fehlerdateien finden:

Zugriffsprotokoll:

/var/log/nginx/access.log

Fehlerprotokoll:

/var/log/nginx/error.log

Um Protokolle in Echtzeit in Ihrem Terminal anzuzeigen, verwenden Sie den Befehl sudo tail -f /location/of/log path.

Beispiel:

sudo tail -f /var/log/nginx/access.log

Eine andere Option besteht darin, die letzten X Zeilen zu drucken. Beispielsweise wird X durch 30 ersetzt, um 30 Zeilen zu drucken, indem das Flag -n 30 hinzugefügt wird .

sudo tail -f /var/log/nginx/access.log -n 30

Dies sind nur einige Beispiele für das Lesen von Protokollen, und grep kann ebenfalls hilfreich sein.

So konfigurieren Sie Nginx Log Rotate

Nginx installiert automatisch die Protokollrotation und konfiguriert sie auf die Standardeinstellung, die täglich rotieren soll. Sie können diese Einstellungen ändern, indem Sie wie unten gezeigt auf die Datei zugreifen.

sudo nano /etc/nginx/logrotate.d/nginx

Als nächstes sehen Sie die gleiche, wenn nicht ähnliche Dateistruktur. Hier können Sie den Inhalt ändern. Meistens können Sie ändern, wie viele Protokolle aufbewahrt werden sollen, oder von täglich auf wöchentlich wechseln. Dies sollte standardmäßig beibehalten werden, es sei denn, Sie haben spezielle Protokollanforderungen für Software wie fail2ban-Überwachung oder ähnliches.

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Die wichtigsten Einstellungen, die Sie wahrscheinlich ändern möchten, sind die folgenden:

  • Täglich – Dies kann in Wöchentlich, Monatlich geändert werden. Dies sollte täglich eingehalten werden, da sonst das Durchsuchen der Protokolldatei schwierig wird.
  • Um 14 drehen – So viele Protokolle müssen aufbewahrt und entfernt werden, also gibt es maximal 14 Protokolle, wenn Sie nur Protokolle im Wert von 7 Tagen aufbewahren möchten, ändern Sie dies auf 7.

Es wird empfohlen, keine anderen Einstellungen zu ändern, es sei denn, Sie wissen, was Sie tun.

So aktualisieren Sie Nginx

Nginx wird standardmäßig aktualisiert, wenn eine neue Version in die Repositories gelangt. Vor dem Upgrade ist es immer ratsam, Ihr Nginx-Verzeichnis oder zumindest die nginx.conf zu sichern Datei. Sie können beides mit dem folgenden Befehl tun.

Nginx.conf sichern (dringend empfohlen):

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Sichern Sie Ihren gesamten Nginx-Ordner, wenn Sie möchten:

sudo cp /etc/nginx/ /etc/nginx-bkup

Führen Sie als Nächstes den Standard-Update-Befehl aus.

sudo dnf upgrade --refresh

Wenn ein Upgrade verfügbar ist, führen Sie das Upgrade aus.

Möglicherweise werden Sie während eines Upgrades oder einer Installation dazu aufgefordert, aber dies vorher manuell zu tun, ist ziemlich wichtig. Bei großen Nginx-Konfigurationen mit mehreren Sites wäre eine Sicherung auf etwas wie Github oder Gitlab sogar noch vorteilhafter.

So entfernen (deinstallieren) Sie Nginx

Um Nginx zu entfernen, wenn Sie es nicht mehr verwenden, können Sie dies mit dem folgenden Befehl tun:

sudo dnf autoremove nginx

Dieser Befehl entfernt auch alle ungenutzten Abhängigkeiten, die mit der Installation geliefert wurden.

Denken Sie daran, wenn Sie Nginx mit EPEL installieren und es zurücksetzen möchten, um die Originalversion neu zu installieren, verwenden Sie den folgenden Befehl wie zuvor erwähnt.

sudo dnf modules reset nginx

AlmaLinux
  1. So installieren Sie Nginx unter Ubuntu 16.04

  2. So installieren Sie Nginx unter CentOS 7

  3. So installieren Sie Nginx unter Debian 9

  4. So installieren Sie MongoDB auf AlmaLinux 8

  5. So installieren Sie Nginx unter Debian 11

So installieren Sie Elasticsearch auf AlmaLinux 8

So installieren Sie Ntopng auf AlmaLinux 8

So installieren Sie Laravel auf AlmaLinux 8

So installieren Sie Prometheus auf AlmaLinux 8

So installieren Sie den LEMP-Stack auf AlmaLinux 8

So installieren Sie Nginx auf AlmaLinux 8