Website-Suche

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


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

Varnish fungiert als Vermittler zwischen Nginx und den Kunden, jedoch mit einigen Leistungsvorteilen. Sein Hauptzweck besteht darin, Ihre Anwendungen schneller zu laden, 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 für genau ähnliche Inhalte aus dem Cache bedient.

Dadurch werden Ihre Webanwendungen schneller geladen und indirekt die Gesamtleistung Ihres Webservers verbessert, da Varnish Inhalte aus dem Speicher bereitstellt, anstatt dass Nginx Dateien von der Speicherfestplatte verarbeitet.

Neben dem Caching hat Varnish auch mehrere andere Anwendungsfälle, darunter einen HTTP-Anforderungsrouter und einen Load Balancer, eine Web Application Firewall und mehr.

Der Varnish wird mit der hochgradig erweiterbaren integrierten Varnish Configuration Language (VCL) konfiguriert, mit der Sie Richtlinien schreiben können, wie eingehende Anfragen behandelt werden sollen. Sie können es verwenden, um benutzerdefinierte Lösungen, Regeln und Module zu erstellen.

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

Um einen kompletten LEMP-Stack einzurichten, anstatt nur den Nginx-Webserver zu installieren, sehen Sie sich die folgenden Anleitungen an.

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

Schritt 1: Installieren des Nginx-Webservers unter CentOS/RHEL 8

1. CentOS/RHEL 8 wird mit der neuesten Version der Nginx-Webserver-Software ausgeliefert, daher werden wir sie mit den folgenden dnf-Befehlen aus dem Standard-Repository installieren.

# dnf update
dnf install nginx

2. Nach der Installation von Nginx 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 ein wenig neugierig geworden sind, können Sie den Nginx TCP-Socket, der standardmäßig auf Port 80 läuft, auch mit dem folgenden ss-Befehl überprüfen.

# ss -tpln

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

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

Schritt 2: Installieren von Varnish Cache 6 unter CentOS/RHEL 8

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

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

# dnf module install varnish

6. Sobald die Installation des Moduls 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 ausführbare Hauptbefehl, der unter /usr/sbin/varnishd installiert ist, und die Varnish-Konfigurationsdateien in /etc/varnish/.

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

8. Starten Sie als Nächstes den Varnish-Dienst, aktivieren Sie den automatischen Start während des Systemstarts und bestätigen Sie, dass er ausgeführt wird.

# systemctl start varnish
systemctl enable varnish
systemctl status varnish

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

9. In diesem Abschnitt zeigen wir, wie Sie den Varnish Cache so konfigurieren, dass er vor Nginx ausgeführt wird. Standardmäßig lauscht Nginx auf Port 80, normalerweise ist jeder Serverblock (oder virtuelle Host) so konfiguriert, dass er auf diesem Port lauscht.

Werfen Sie beispielsweise einen Blick auf den standardmäßigen nginx-Serverblock, 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 auf 8080 (oder einen anderen Port Ihrer Wahl) ändern.

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

Der Serverblock für unsere Testseite tecmint.lan lautet 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 Standard-Serverblock zu deaktivieren, indem Sie seinen Konfigurationsabschnitt in der Datei /etc/nginx/nginx.conf auskommentieren, wie im folgenden Screenshot gezeigt. Auf diese Weise können Sie andere Websites/Anwendungen auf Ihrem Server ausführen, andernfalls leitet Nginx Anfragen immer an den Standard-Serverblock weiter.

11. Sobald die Konfiguration abgeschlossen ist, überprüfen Sie 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 als Nächstes Varnish so konfigurieren, dass es auf Port 80 ausgeführt wird. 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 Lauschadresse und den Port angibt. Legen Sie den Port auf 80 fest, wie im folgenden Screenshot gezeigt.

Hinweis: Wenn Sie keine Adresse angeben, überwacht varnishd alle verfügbaren IPv4- und IPv6-Schnittstellen, die auf dem Server aktiv sind.

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 geschieht in der Varnish-Hauptkonfigurationsdatei.

# vi /etc/varnish/default.vcl 

Suchen Sie nach dem Abschnitt für die Standard-Backend-Konfiguration und ändern Sie die Zeichenfolge "default" in server1 (oder einen beliebigen Namen Ihrer Wahl, um Ihren Ursprungsserver darzustellen). Legen Sie dann den Port auf 8080 fest (oder den Nginx-Listening-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 ausgeführt wird. Beispiel: Ein anderer Server mit der Adresse 10.42.0.247 legt 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 manager-Konfiguration aufgrund der jüngsten Änderungen in der Varnish-Dienstdatei neu laden und dann den Varnish-Dienst neu starten, um die Änderungen wie folgt anzuwenden.

# systemctl daemon-reload
systemctl restart varnish

15. Vergewissern Sie sich 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, ob die Webseiten wie folgt über Varnish Cache bereitgestellt werden. Öffnen Sie einen Webbrowser, und navigieren Sie mit der Server-IP oder dem FDQN, wie im folgenden Screenshot gezeigt.

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

17. Alternativ können Sie den Befehl curl 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 Verwaltung von Varnish-Caches

18. In diesem letzten Abschnitt werden wir kurz einige der nützlichen Dienstprogramme beschreiben, mit denen Varnish Cache ausgeliefert wird, mit denen Sie Varnishd steuern, auf In-Memory-Protokolle und Gesamtstatistiken zugreifen und vieles mehr.

Varnishadm

varnishadm ist ein Dienstprogramm zur Steuerung einer laufenden Varnish-Instanz. Es stellt eine CLI-Verbindung zu varnishd her. Sie können es beispielsweise verwenden, um konfigurierte Backends aufzulisten, wie im folgenden Screenshot gezeigt (lesen Sie man varnishadm für weitere Informationen).

# varnishadm
varnish> backend.list

Varnish-Protokoll

Das Dienstprogramm varnishlog ermöglicht den Zugriff auf anforderungsspezifische Daten. Es bietet Informationen über bestimmte Kunden und Anfragen (lesen Sie man varnishlog für weitere Informationen).

# varnishlog

Varnishstat

Ein varnishstat, auch bekannt als varnish statistics, der Ihnen einen Überblick über die aktuelle Leistung von Varnish gibt, indem er Zugriff auf In-Memory-Statistiken wie Cache-Treffer und -Fehlwürfe, Informationen über den Speicher, erstellte Threads und gelöschte Objekte bietet (lesen Sie man varnishstat für weitere Informationen).

# varnishstat 

varnishtop

Ein varnishtop-Dienstprogramm liest die Shared Memory-Protokolle und präsentiert eine ständig aktualisierte Liste der am häufigsten vorkommenden Protokolleinträge (lesen Sie man varnishtop für weitere Informationen).

# varnishtop 

vaidinhär

Ein varnishhist-Dienstprogramm (varnish history) analysiert die Varnish-Protokolle und gibt ein ständig aktualisiertes Histogramm aus, das die Verteilung der letzten n Anfragen durch deren Verarbeitung zeigt (lesen Sie man varnishhist für weitere Informationen).

# varnishhist

Das ist alles! In dieser Anleitung haben wir gezeigt, wie Sie den Varnish Cache installieren und vor dem Nginx-HTTP-Server ausführen können, um die Bereitstellung von Webinhalten in CentOS/RHEL 8 zu beschleunigen.

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

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-Terminierungsproxy konfigurieren, der in Verbindung mit Varnish Cache funktioniert, um Ihre Website zu schützen. In unserem nächsten Artikel zeigen wir, wie Sie HTTPS für Varnish Cache mit Hitch unter CentOS/RHEL 8 aktivieren.

Verwandte Artikel: