Varnish Cache ist ein kostenloser Open-Source, moderner und leistungsstarker Webanwendungsbeschleuniger. Es handelt sich um einen schnellen reversen HTTP-Proxy, der Inhalte zwischenspeichert, um die Leistung Ihres Webservers zu steigern, indem Webinhalte im Serverspeicher – im Cache – gespeichert werden. Es ist so konfiguriert, dass es vor einem Ursprungsserver wie Apache (HTTPD) Webserver läuft.
Wenn ein Client Inhalte anfordert, akzeptiert Varnish die HTTP-Anfrage, sendet die Anfrage an den Ursprungsserver, zwischenspeichert die zurückgegebenen Objekte und antwortet auf die Client-Anfrage. Das nächste Mal, wenn der Client dieselben Inhalte anfordert, wird Varnish sie aus dem Cache bedienen. Auf diese Weise reduziert es die Antwortzeit und den Netzwerkbandbreitenverbrauch bei zukünftigen äquivalenten Anfragen.
Varnish fungiert auch als HTTP-Anforderungsrouter, Webanwendungs-Firewall, Lastenausgleicher und mehr. Es wird mit der flexiblen Varnish Configuration Language (VCL) konfiguriert, die mit Varnish Modules (auch bekannt als VMODs) erweiterbar ist, unterstützt Edge Side Includes (ESL), Gzip-Komprimierung und Dekomprimierung und vieles mehr.
In diesem Artikel erfahren Sie, wie Sie den Apache HTTPD Webserver und Varnish Cache 6 auf einem frischen CentOS/RHEL 8-Server installieren, einschließlich der Konfiguration von Varnish, um vor dem HTTPD-Server zu laufen.
Voraussetzungen:
- A server with CentOS 8 Installation
- A server with RHEL 8 installation with enabled Red Hat subscription on your system.
Schritt 1: Installation des Apache-Web-Servers auf CentOS/RHEL 8
1. Beginnen Sie damit, alle installierten Softwarepakete auf dem System wie folgt mit dem DNF-Befehl zu aktualisieren.
# dnf update
2. Führen Sie anschließend den folgenden Befehl aus, um den Apache HTTP Webserver aus dem AppStream Repository zu installieren.
# dnf install httpd
3. Sobald die Installation abgeschlossen ist, starten Sie den httpd-Dienst, aktivieren Sie ihn, um beim Systemstart automatisch zu starten, und überprüfen Sie seinen Status, um zu bestätigen, dass er läuft, unter Verwendung des systemctl-Befehls.
# systemctl start httpd # systemctl enable httpd # systemctl status httpd

4. Standardmäßig enthält CentOS/RHEL 8 eine vollständig gesperrte Firewall (führen Sie firewall-cmd –state aus, um dies zu bestätigen). Sie müssen den Zugriff auf den HTTP-Dienst in der Firewall öffnen, um Benutzern den Zugriff auf Websites oder Anwendungen, die über HTTP laufen, zu ermöglichen, und auch die Firewalld-Einstellungen neu laden, um die neuen Änderungen anzuwenden.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload
Schritt 2: Installation von Varnish Cache 6.4 auf CentOS/RHEL 8
5. Da der Apache-Webserver jetzt läuft, können Sie weiterfahren und Varnish Cache auf dem System mit dem folgenden Befehl installieren.
# dnf module install varnish

6. Nach einer erfolgreichen Installation können Sie die Version von Varnish auf Ihrem System überprüfen.
# varnishd -V

7. Als nächstes wird das Hauptausführbare als /usr/sbin/varnishd installiert. Auch die Varnish-Konfigurationsdateien werden im Verzeichnis /etc/varnish gespeichert, wo:
- /etc/varnish/default.vcl – die Haupt-Varnish-Konfigurationsdatei ist, die mit VCL geschrieben wurde.
- /etc/varnish/secret – ist die Varnish-Geheimdatei.
8. Starten Sie nun den Varnish-Dienst, aktivieren Sie ihn vorerst, um ihn bei einem Serverneustart automatisch zu starten, und überprüfen Sie seinen Status, um sicherzustellen, dass er läuft, wie folgt:
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

Schritt 3: Konfigurieren von Apache zur Arbeit mit Varnish Cache
9. Jetzt ist es an der Zeit, Varnish Cache so zu konfigurieren, dass er vor dem Apache-Dienst ausgeführt wird. Standardmäßig ist der Apache-Server so konfiguriert, dass er auf Port 80 hört, dies ist in der Hauptkonfigurationsdatei /etc/httpd/conf/httpd.conf definiert.
Öffnen Sie sie zum Bearbeiten mit Ihrem bevorzugten Texteditor.
# vi /etc/httpd/conf/httpd.conf
Suchen Sie nach dem Listen-Parameter. Um Varnish vor dem Apache-Server auszuführen, sollten Sie den Standardport 80 in 8080 (oder einen anderen Port Ihrer Wahl) ändern, wie im folgenden Screenshot gezeigt.
Dieser Port wird später als Port des Backend-Servers in der Varnish-Konfigurationsdatei hinzugefügt.

Außerdem sollte die virtuelle Host-Konfiguration für jede Webseite/Anwendung, die über Varnish bereitgestellt wird, so konfiguriert werden, dass sie auf den oben genannten Port hört. Hier ist die Konfiguration für unsere Testseite (/etc/httpd/conf.d/tecmint.lan.conf).
<VirtualHost *:8080> DocumentRoot "/var/www/html/tecmint.lan/" ServerName www.tecmint.lan # Other directives here </VirtualHost>

Wichtig: Um zu verhindern, dass die Standard-Apache-HTTP-Server-Testseite jemals verwendet wird, kommentieren Sie alle Zeilen in der Datei /etc/httpd/conf.d/welcome.conf aus oder löschen Sie die Datei einfach.
# rm /etc/httpd/conf.d/welcome.conf
10. Testen Sie als Nächstes die Syntax der httpd-Konfiguration auf Fehler. Wenn alles in Ordnung ist, starten Sie den httpd-Dienst neu, um die neuen Änderungen zu übernehmen.
# httpd -t # systemctl restart httpd

Konfigurieren von Varnish für Systemd
11. Um Varnish vor HTTPD zu implementieren, müssen Sie es einfach so konfigurieren, dass es auf Clientanfragen im standardmäßigen HTTP-Port 80 hört, wie unten erklärt.
Beachten Sie, dass in Varnish Cache 6.0 und höher der Port, auf dem der Varnish-Server in der Varnish-Service-Datei für systemd hört, festgelegt werden muss. Öffnen Sie es zunächst zum Bearbeiten.
# systemctl edit --full varnish
Suchen Sie die ExecStart-Zeile und ändern Sie dann den Wert des -a
-Schalters (der die Adresse und den Port angibt, auf die Varnish hören soll) von :6081
in :80
, wie im folgenden Screenshot angegeben.
Wichtig ist, dass varnishd ohne Angabe einer Adresse auf allen verfügbaren IPv4– und IPv6-Schnittstellen aktiv auf dem Server hören wird.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Speichern Sie die Änderungen in der Datei und beenden Sie sie.
Konfigurieren von Varnish-Back-End-Servern mit VCL
12. Jetzt müssen Sie den Ursprungsserver konfigurieren, der in der Varnish-Terminologie als Backend bekannt ist. Es ist der Server, der HTTP versteht, mit dem Varnish spricht, um Inhalte abzurufen – in diesem Fall httpd. Es ist in der Hauptkonfigurationsdatei /etc/varnish/default.vcl konfiguriert.
# vi /etc/varnish/default.vcl
Es gibt einen Standardkonfigurationsabschnitt für das Backend namens default. Sie können „default“ in „server1“ (oder einen beliebigen Namen Ihrer Wahl, um den Umgebungsstandards zu entsprechen) ändern. Standardmäßig verweist der Host-Parameter auf localhost, unter der Annahme, dass der Backend-Server auf dem localhost läuft.
Dann setzen Sie den Port auf 8080 (den Port, den Sie in der Apache-Virtual-Host-Konfigurationsdatei definiert haben), wie im Screenshot gezeigt.
backend server1 { .host = "127.0.0.1"; .port = "8080"; }

Wenn Ihr Backend-Server auf einem anderen Host läuft, zum Beispiel einem anderen Server mit der Adresse 10.42.1.10, sollte der Host-Parameter auf diese IP-Adresse zeigen.
backend server1 { .host = "10.42.1.10"; .port = "8080"; }
Speichern Sie die Datei und schließen Sie sie.
13. Nachdem alle notwendigen Änderungen bezüglich Varnish vorgenommen wurden, laden Sie die systemd-Managerkonfiguration neu, um die neuen Änderungen in der Varnish-Dienstdatei zu reflektieren, und starten Sie auch den Varnish-Dienst neu, um die gesamten Änderungen anzuwenden.
# systemctl daemon-reload # systemctl restart varnish
14. Zu diesem Zeitpunkt sollten Varnish und Apache nun jeweils auf Port 80 und 8080 lauschen. Dies können Sie mit dem Socket-Statistik-Befehl bestätigen.
# ss -tpln

Schritt 4: Testen der Varnish Cache- und Apache-Konfiguration
14. Um die Varnish Cache-HTTPD-Konfiguration zu testen, öffnen Sie einen Webbrowser und navigieren Sie mit der Server-IP oder dem FQDN wie im folgenden Screenshot gezeigt.
http://10.42.0.144 OR http://www.tecmin.lan
Überprüfen Sie dann, ob die Webseiten über Varnish Cache bereitgestellt werden. Überprüfen Sie die HTTP-Header, indem Sie mit der rechten Maustaste auf die angezeigte Webseite klicken, Inspektieren auswählen, um die Entwicklertools zu öffnen, dann auf die Registerkarte Netzwerk klicken und die Seite neu laden. Wählen Sie dann eine Anfrage aus, um die HTTP-Header anzuzeigen und dies wie im folgenden Screenshot gezeigt zu bestätigen.

Alternativ können Sie den folgenden curl-Befehl ausführen, um dies zu überprüfen.
# curl -I http:///10.42.0.144 OR #curl -I http:///www.tecmint.lan

Nützliche Varnish Cache-Dienstprogramme
15. Beenden wir diesen Leitfaden, indem wir uns einige der nützlichen Programme ansehen, die mit der Varnish Cache-Distribution geliefert werden. Dazu gehören Dienstprogramme zur Verwaltung des Varnish-Caches, zur Anzeige detaillierter Protokolldatensätze und zur Anzeige von Leistungsstatistiken des Varnish, wie unten beschrieben.
varnishadm
Der erste ist varnishadm, der verwendet wird, um eine laufende Varnish-Instanz zu verwalten. Es stellt eine Befehlszeilenschnittstelleverbindung zu varnishd her. Es kann eine laufende Instanz von Varnish beeinflussen, indem es varnishd startet und stoppt, Konfigurationsparameter ändert, das VCL neu lädt, Backends auflistet und mehr.
# varnishadm > backend.list

Weitere Informationen finden Sie unter man varnishadm.
varnishlog
Das nächste Programm ist varnishlog, das verwendet wird, um datenspezifische Anfragen abzurufen (d.h. Informationen über spezifische Clients und Anfragen). Es liefert große Mengen an Informationen, daher ist es in der Regel notwendig, diese zu filtern.
# varnishlog

Weitere Informationen finden Sie unter man varnishlog.
varnishstat
Wir haben auch varnishstat (Varnish-Statistiken), das verwendet wird, um Gesamtstatistiken wie die Anzahl der Gesamtanfragen, die Anzahl der Objekte und mehr abzurufen.
# varnishstat

Weitere Informationen finden Sie unter man varnishstat.
varnishtop
Dann haben wir varnishtop, ein Dienstprogramm, das das Varnish-Protokoll liest und eine kontinuierlich aktualisierte Liste der am häufigsten auftretenden Protokolleinträge präsentiert.
# varnishtop

Weitere Informationen finden Sie unter man varnishtop.
varnishhist
Eine weitere nützliche Funktion ist das varnishhist (Verlaufsanzeige für Varnish), das die Varnish-Protokolle liest und ein kontinuierlich aktualisiertes Histogramm zeigt, das die Verteilung der letzten N Anfragen nach ihrer Verarbeitung darstellt.
# varnishhist

Für weitere Informationen lesen Sie das Handbuch zu varnishhist.
Hier haben Sie es! Sie haben erfolgreich Varnish Cache implementiert, um den Inhalt Ihrer Webanwendung zu beschleunigen, der mit dem Apache HTTP Server auf CentOS/RHEL 8 bereitgestellt wird.
Wenn Sie Fragen zu diesem Thema haben oder Gedanken teilen möchten, verwenden Sie das untenstehende Feedback-Formular. Schauen Sie sich die Varnish Cache 6.0 Dokumentation für weitere Informationen an.
Wenn Sie HTTPS auf Ihrer Website aktivieren möchten, lesen Sie unseren nächsten Artikel, der zeigt, wie Sie SSL/TLS für Varnish Cache mithilfe von Hitch aktivieren auf CentOS/RHEL 8.
Source:
https://www.tecmint.com/install-varnish-cache-for-apache-on-centos-rhel-8/