Nginx spricht engine x
aus ist ein kostenloser, hochleistungsfähiger Open-Source-HTTP- und Reverse-Proxy-Server, der für die Verarbeitung der Last einiger der größten Websites im Internet verantwortlich ist.
Nginx kann als eigenständiger Webserver und als Reverse-Proxy für Apache und andere Webserver verwendet werden.
Im Vergleich zu Apache kann Nginx eine viel größere Anzahl gleichzeitiger Verbindungen verarbeiten und hat einen geringeren Speicherbedarf pro Verbindung.
In diesem Tutorial erfahren Sie, wie Sie Nginx auf Ihrem CentOS 7-Computer installieren und verwalten.
Voraussetzungen #
Bevor Sie mit dem Tutorial beginnen, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind und Apache oder andere Dienste nicht auf Port 80 oder 443 ausgeführt werden.
Installieren von Nginx unter CentOS #
Führen Sie die folgenden Schritte aus, um Nginx auf Ihrem CentOS-Server zu installieren:
-
Nginx-Pakete sind in den EPEL-Repositories verfügbar. Wenn Sie das EPEL-Repository noch nicht installiert haben, können Sie dies tun, indem Sie Folgendes eingeben:
sudo yum install epel-release
-
Installieren Sie Nginx, indem Sie den folgenden yum-Befehl eingeben:
sudo yum install nginx
Wenn Sie zum ersten Mal ein Paket aus dem EPEL-Repository installieren, fordert yum Sie möglicherweise auf, den EPEL-GPG-Schlüssel zu importieren:
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) <[email protected]>" Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5 Package : epel-release-7-9.noarch (@extras) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Is this ok [y/N]:
Geben Sie in diesem Fall
y
ein und drücken SieEnter
. -
Sobald die Installation abgeschlossen ist, aktivieren und starten Sie den Nginx-Dienst mit:
sudo systemctl enable nginx
sudo systemctl start nginx
Überprüfen Sie den Status des Nginx-Dienstes mit dem folgenden Befehl:
sudo systemctl status nginx
Die Ausgabe sollte in etwa so aussehen:
● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2018-03-12 16:12:48 UTC; 2s ago Process: 1677 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 1675 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 1673 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 1680 (nginx) CGroup: /system.slice/nginx.service ├─1680 nginx: master process /usr/sbin/nginx └─1681 nginx: worker process
-
Wenn Ihr Server durch eine Firewall geschützt ist, müssen Sie sowohl HTTP (
80
) und HTTPS (443
) Ports.Verwenden Sie die folgenden Befehle, um die erforderlichen Ports zu öffnen:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
-
Um Ihre Nginx-Installation zu überprüfen, öffnen Sie
http://YOUR_IP
in Ihrem Browser Ihrer Wahl, und Sie sehen die standardmäßige Nginx-Willkommensseite, wie im Bild unten gezeigt:
Verwalten Sie den Nginx-Dienst mit systemctl #
Sie können den Nginx-Dienst genauso verwalten wie jede andere systemd-Einheit.
Um den Nginx-Dienst zu stoppen, führen Sie Folgendes aus:
sudo systemctl stop nginx
Geben Sie zum erneuten Starten Folgendes ein:
sudo systemctl start nginx
So starten Sie den Nginx-Dienst neu:
sudo systemctl restart nginx
Laden Sie den Nginx-Dienst neu, nachdem Sie einige Konfigurationsänderungen vorgenommen haben:
sudo systemctl reload nginx
Wenn Sie den Nginx-Dienst deaktivieren möchten, um beim Booten zu starten:
sudo systemctl disable nginx
Und um es wieder zu aktivieren:
sudo systemctl enable nginx
Struktur und Best Practices der Nginx-Konfigurationsdatei #
- Alle Nginx-Konfigurationsdateien befinden sich in
/etc/nginx/
Verzeichnis. - Die Hauptkonfigurationsdatei von Nginx ist
/etc/nginx/nginx.conf
. - Um die Wartung der Nginx-Konfiguration zu vereinfachen, wird empfohlen, für jede Domain eine separate Konfigurationsdatei zu erstellen.
- Neue Nginx-Serverblockdateien müssen mit
.conf
enden und in/etc/nginx/conf.d
gespeichert werden Verzeichnis. Sie können so viele Serverblöcke haben, wie Sie brauchen. - Es ist eine gute Idee, einer Standard-Namenskonvention zu folgen, beispielsweise wenn Ihr Domänenname
mydomain.com
ist dann sollte Ihre Konfigurationsdatei/etc/nginx/conf.d/mydomain.com.conf
heißen - Wenn Sie wiederholbare Konfigurationssegmente in Ihren Domänenserverblöcken verwenden, ist es eine gute Idee, ein Verzeichnis mit dem Namen
/etc/nginx/snippets
zu erstellen Umgestalten dieser Segmente in Snippets und Einfügen der Snippet-Datei in die Serverblöcke. - Nginx-Protokolldateien (
access.log
underror.log
) befinden sich im/var/log/nginx/
Verzeichnis. Es wird empfohlen, einen anderenaccess
zu haben underror
Protokolldateien für jeden Serverblock. - Sie können das Root-Verzeichnis Ihrer Domänendokumente auf einen beliebigen Speicherort festlegen. Die häufigsten Speicherorte für Webroot sind:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>
/usr/share/nginx/html