Website-Suche

So installieren Sie Varnish Cache 6 für Nginx unter CentOS/RHEL 8


Varnish Cache (allgemein als Varnish bezeichnet) ist ein Open-Source-, leistungsstarker und schneller Reverse-Proxy-HTTP-Beschleuniger mit moderner Architektur und Flexibilität Konfigurationssprache. Ein Reverse-Proxy zu sein bedeutet einfach, dass es sich um Software handelt, die Sie vor Ihrem Webserver (dem Ursprungsserver oder Backend) wie Nginx bereitstellen können, um die HTTP-Anfragen der Clients zu empfangen und an den weiterzuleiten Ursprungsserver zur Verarbeitung. Und es übermittelt die Antwort vom Ursprungsserver an die Clients.

Varnish fungiert als Vermittler zwischen Nginx und Clients, bietet jedoch einige Leistungsvorteile. Sein Hauptzweck besteht darin, das Laden Ihrer Anwendungen zu beschleunigen, indem es als Caching-Engine fungiert. Es empfängt Anfragen von Clients und leitet sie einmal an das Backend weiter, um den angeforderten Inhalt zwischenzuspeichern (Dateien und Dateifragmente im Speicher zu speichern). Dann werden alle zukünftigen Anfragen nach genau ähnlichen Inhalten aus dem Cache bedient.

Dies beschleunigt das Laden Ihrer Webanwendungen und verbessert indirekt die Gesamtleistung Ihres Webservers, da Varnish Inhalte aus dem Speicher bereitstellt, anstatt dass Nginx Dateien von der Speicherfestplatte verarbeitet.

Neben dem Caching verfügt Varnish auch über mehrere andere Anwendungsfälle, darunter einen HTTP-Request-Router, einen Load Balancer, eine Webanwendungs-Firewall und mehr.

Der Varnish wird mithilfe der hoch erweiterbaren integrierten Varnish Configuration Language (Varnish Configuration Language) (Varnish) konfiguriert, die es Ihnen ermöglicht, Richtlinien darüber zu schreiben, wie eingehende Anfragen sein sollen abgewickelt. Sie können damit individuelle Lösungen, Regeln und Module erstellen.

In diesem Artikel gehen wir die Schritte zur Installation des Nginx-Webservers und Varnish Cache 6 auf einem neuen CentOS 8 oder durch RHEL 8-Server. Benutzer von RHEL 8 sollten sicherstellen, dass sie das Redhat-Abonnement aktivieren.

Um einen vollständigen LEMP-Stack einzurichten, anstatt nur den Nginx-Webserver zu installieren, lesen Sie die folgenden Anleitungen.

  1. So installieren Sie den LEMP-Server unter CentOS 8
  2. So installieren Sie den LEMP-Server auf RHEL 8

Schritt 1: Installieren Sie den Nginx-Webserver unter CentOS/RHEL 8

1. Das CentOS/RHEL 8 wird mit der neuesten Version der Nginx-Webserversoftware geliefert, daher installieren wir es aus dem Standard-Repository mithilfe von Befolgen von DNF-Befehlen.

dnf update
dnf install nginx

2. Sobald Nginx installiert ist, müssen Sie den Status mit den folgenden systemctl-Befehlen starten, aktivieren und überprüfen.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Wenn Sie etwas neugierig sind, können Sie mit dem folgenden ss-Befehl auch den Nginx-TCP-Socket überprüfen, der standardmäßig auf Port 80 läuft.

ss -tpln

4. Wenn Sie die Firewall auf dem System ausführen, stellen Sie sicher, dass Sie die Firewall-Regeln aktualisieren, um Anfragen an einen Webserver zuzulassen.

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

Schritt 2: Varnish Cache 6 unter CentOS/RHEL 8 installieren

5. Das CentOS/RHEL 8 stellt standardmäßig ein Varnish Cache DNF-Modul bereit, das Version 6.0 enthält LTS (Langfristiger Support).

Um das Modul zu installieren, führen Sie den folgenden Befehl aus.

dnf module install varnish

6. Sobald die Modulinstallation abgeschlossen ist, können Sie die auf Ihrem System installierte Version von Varnish bestätigen.

varnishd -V

7. Nach der Installation von Varnish Cache befinden sich der unter /usr/sbin/varnishd installierte Hauptausführungsbefehl und die Lackkonfigurationsdateien in /etc/varnish/.

Die Datei /etc/varnish/default.vcl ist die Haupt-Lack-Konfigurationsdatei, die mit VCL geschrieben wurde, und /etc/varnish/secret ist der Lack Geheimdatei.

8. Starten Sie als Nächstes den Dienst Varnish, aktivieren Sie den automatischen Start beim Systemstart und vergewissern Sie sich, dass er aktiv ist.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Schritt 3: Nginx für die Arbeit mit Varnish Cache konfigurieren

9. In diesem Abschnitt zeigen wir, wie man Varnish Cache für die Ausführung vor Nginx konfiguriert. Standardmäßig lauscht Nginx auf Port 80, normalerweise ist jeder Serverblock (oder virtuelle Host) so konfiguriert, dass er auf diesem Port lauscht.

Sehen Sie sich beispielsweise den standardmäßigen Nginx-Serverblock an, der in der Hauptkonfigurationsdatei (/etc/nginx/nginx.conf) konfiguriert ist.

vi /etc/nginx/nginx.conf

Suchen Sie nach dem Abschnitt „Serverblock“, wie im folgenden Screenshot gezeigt.

10. Um Varnish vor Nginx auszuführen, sollten Sie den Standard-Nginx-Port von 80 in ändern >8080 (oder ein anderer Port Ihrer Wahl).

Dies sollte in allen zukünftigen Serverblock-Konfigurationsdateien (normalerweise erstellt unter /etc/nginx/conf.d/) für Websites oder Webanwendungen erfolgen, die Sie über Varnish bereitstellen möchten >.

Der Serverblock für unsere Testseite tecmint.lan ist beispielsweise /etc/nginx/conf.d/tecmint.lan.conf und hat die folgende Konfiguration.

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

Wichtig: Denken Sie daran, den Standardserverblock zu deaktivieren, indem Sie seinen Konfigurationsabschnitt in der Datei /etc/nginx/nginx.conf wie gezeigt auskommentieren im folgenden Screenshot. Dadurch können Sie andere Websites/Anwendungen auf Ihrem Server ausführen. Andernfalls leitet Nginx Anfragen immer an den Standardserverblock weiter.

11. Überprüfen Sie nach Abschluss der Konfiguration die Konfigurationsdatei auf Fehler und starten Sie den Nginx-Dienst neu, um die letzten Änderungen zu übernehmen.

nginx -t
systemctl restart nginx

12. Um HTTP-Anfragen von Clients zu empfangen, müssen wir Varnish für die Ausführung auf Port 80 konfigurieren. Anders als in früheren Versionen von Varnish Cache, wo diese Änderung in der Varnish-Umgebungsdatei vorgenommen wurde (die jetzt veraltet ist), in Version 6.0 und höher .

Wir müssen die erforderliche Änderung in der Varnish-Servicedatei vornehmen. Führen Sie den folgenden Befehl aus, um die entsprechende Dienstdatei zur Bearbeitung zu öffnen.

systemctl edit --full  varnish

Suchen Sie die folgende Zeile und ändern Sie den Wert des Schalters -a, der die Abhöradresse und den Port angibt. Stellen Sie den Port auf 80 ein, wie im folgenden Screenshot gezeigt.

Beachten Sie, dass varnishd alle verfügbaren IPv4- und IPv6-Schnittstellen abhört, die auf dem Server aktiv sind, wenn Sie keine Adresse angeben.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Speichern Sie die Änderungen in der Datei und beenden Sie den Vorgang.

13. Als Nächstes müssen Sie den Backend-Server definieren, den Varnish besuchen wird, um Inhalte abzurufen. Dies erfolgt in der Varnish-Hauptkonfigurationsdatei.

vi /etc/varnish/default.vcl 

Suchen Sie nach dem Abschnitt „Standard-Backend-Konfiguration“ und ändern Sie die Zeichenfolge „default“ in „server1“ (oder einen beliebigen Namen Ihrer Wahl, der Ihren Ursprungsserver darstellt). Setzen Sie dann den Port auf 8080 (oder den Nginx-Listen-Port, den Sie in Ihrem Serverblock definiert haben).

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}

Für diese Anleitung führen wir Varnish und Nginx auf demselben Server aus. Wenn Ihr Nginx-Webserver auf einem anderen Host läuft. Zum Beispiel ein anderer Server mit der Adresse 10.42.0.247, dann legen Sie den Parameter .host wie gezeigt fest.

backend server1 {
    .host = "10.42.0.247";
    .port = "8080";
}

Speichern Sie die Datei und schließen Sie sie.

14. Als nächstes müssen Sie die systemd-Managerkonfiguration aufgrund der letzten Änderungen in der Varnish-Dienstdatei neu laden und dann den Varnish-Dienst neu starten, um die Änderungen wie folgt zu übernehmen.

systemctl daemon-reload
systemctl restart varnish

15. Bestätigen Sie nun, dass Nginx und Varnish auf den konfigurierten TCP-Sockets lauschen.

ss -tpln

Schritt 4: Testen des Nginx-Varnish-Cache-Setups

16. Überprüfen Sie als Nächstes wie folgt, ob die Webseiten über Varnish Cache bereitgestellt werden. Öffnen Sie einen Webbrowser und navigieren Sie mithilfe der Server-IP oder des FDQN, wie im folgenden Screenshot gezeigt.

http://www.tecmin.lan
OR
http://10.42.0.144

17. Alternativ können Sie den Curl-Befehl wie gezeigt verwenden. Verwenden Sie die IP-Adresse Ihres Servers oder den FQDN Ihrer Website oder verwenden Sie 127.0.0.1 oder localhost, wenn Sie lokal testen.

curl -I http:///www.tecmint.lan

Nützliche Dienstprogramme zur Varnish-Cache-Verwaltung

18. In diesem letzten Abschnitt beschreiben wir kurz einige der nützlichen Hilfsprogramme, mit denen Varnish Cache geliefert wird und die Sie zur Steuerung von varnishd verwenden können >, Zugriff auf In-Memory-Protokolle und Gesamtstatistiken und mehr.

Lackadm

varnishadm ist ein Dienstprogramm zur Steuerung einer laufenden Varnish-Instanz. Es stellt eine CLI-Verbindung zu lackd her. Sie können damit beispielsweise konfigurierte Backends auflisten, wie im folgenden Screenshot gezeigt (weitere Informationen finden Sie unter man lackadm).

varnishadm
varnish> backend.list

Lackprotokoll

Das Dienstprogramm varnishlog bietet Zugriff auf anforderungsspezifische Daten. Es bietet Informationen zu bestimmten Kunden und Anfragen (weitere Informationen finden Sie im man lacklog).

varnishlog

Lackstat

Ein Varnishstat, auch bekannt als Varnish Statistics, der Ihnen einen Blick auf die aktuelle Leistung von Varnish gibt, indem er Zugriff auf In-Memory-Statistiken wie Cache-Hits und -Miss sowie Informationen über den Speicher bietet , Threads erstellt, gelöschte Objekte (weitere Informationen finden Sie unter man lackstat).

varnishstat 

Lackplatte

Ein varnishtop-Dienstprogramm liest die Shared-Memory-Protokolle und präsentiert eine kontinuierlich aktualisierte Liste der am häufigsten vorkommenden Protokolleinträge (weitere Informationen finden Sie unter man lacktop).

varnishtop 

Lackhist

Ein varnishhist (Varnish History)-Dienstprogramm analysiert die Lackprotokolle und gibt ein kontinuierlich aktualisiertes Histogramm aus, das die Verteilung der letzten n Anfragen nach ihrer Verarbeitung zeigt ( Weitere Informationen finden Sie unter man lackhist.

varnishhist

Das ist alles! In dieser Anleitung haben wir gezeigt, wie man Varnish Cache installiert und vor dem Nginx HTTP-Server ausführt, um die Bereitstellung von Webinhalten in CentOS/RHEL 8< zu beschleunigen.

Alle Gedanken oder Fragen zu diesem Leitfaden können über das unten stehende Feedback-Formular mitgeteilt werden. Weitere Informationen finden Sie in der Varnish Cache-Dokumentation.

Der Hauptnachteil von Varnish Cache ist die fehlende native Unterstützung für HTTPS. Um HTTPS auf Ihrer Website/Anwendung zu aktivieren, müssen Sie einen SSL/TLS-Terminierungs-Proxy konfigurieren, der in Verbindung mit Varnish Cache zum Schutz Ihrer Website arbeitet. In unserem nächsten Artikel zeigen wir, wie man HTTPS für Varnish Cache mit Hitch unter CentOS/RHEL 8 aktiviert.