Website-Suche

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


Varnish Cache ist ein kostenloser, moderner und leistungsstarker Open-Source-Beschleuniger für Webanwendungen. Es handelt sich um einen schnellen Reverse-HTTP-Proxy, der Inhalte zwischenspeichert, um die Leistung Ihres Webservers zu beschleunigen, indem Webinhalte im Serverspeicher – in einem Cache – gespeichert werden. Es ist für die Ausführung vor einem Ursprungsserver wie dem Apache (HTTPD)-Webserver konfiguriert.

Wenn ein Client Inhalte anfordert, akzeptiert Varnish die HTTP-Anfrage, sendet die Anfrage an den Ursprungsserver, speichert die zurückgegebenen Objekte zwischen und antwortet auf die Client-Anfrage. Wenn der Client das nächste Mal denselben Inhalt anfordert, stellt Varnish ihn aus dem Cache bereit. Auf diese Weise werden die Antwortzeit und der Netzwerkbandbreitenverbrauch bei zukünftigen gleichwertigen Anfragen reduziert.

Varnish funktioniert auch als HTTP-Anfragerouter, Webanwendungs-Firewall, Load Balancer und mehr. Die Konfiguration erfolgt mithilfe der flexiblen Varnish Configuration Language (VCL), die mithilfe von Varnish-Modulen (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 neuen CentOS/RHEL 8-Server installieren, einschließlich der Konfiguration Lack zur Ausführung vor dem HTTPD-Server.

Voraussetzungen:

  • Ein Server mit CentOS 8-Installation
  • Ein Server mit RHEL 8-Installation und aktiviertem Red Hat-Abonnement auf Ihrem System.

Schritt 1: Installation des Apache-Webservers unter CentOS/RHEL 8

1. Beginnen Sie mit der Aktualisierung aller installierten Softwarepakete auf dem System wie folgt mit dem DNF-Befehl.

dnf update

2. Führen Sie als Nächstes 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 für den automatischen Start beim Systemstart und überprüfen Sie seinen Status, um zu bestätigen, dass er aktiv ist, indem Sie den Befehl systemctl verwenden.

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 zur Bestätigung firewall-cmd –state aus). Sie müssen den Zugriff auf den HTTP-Dienst in der Firewall öffnen, um Benutzern den Zugriff auf Websites oder Anwendungen zu ermöglichen, die über HTTP ausgeführt werden, und außerdem die Firewall-Einstellungen neu laden, um die neuen Änderungen zu übernehmen.

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

Schritt 2: Installation von Varnish Cache 6.4 unter CentOS/RHEL 8

5. Nachdem der Apache-Webserver nun ausgeführt wird, können Sie mit der Installation von Varnish Cache auf dem System fortfahren, indem Sie den folgenden Befehl verwenden.

dnf module install varnish

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

varnishd -V

7. Als nächstes wird die ausführbare Hauptdatei als /usr/sbin/varnishd installiert. Außerdem werden die Varnish-Konfigurationsdateien im Verzeichnis /etc/varnish gespeichert, wo:

  • /etc/varnish/default.vcl – ist die Haupt-Lack-Konfigurationsdatei, die mit VCL geschrieben wurde.
  • /etc/varnish/secret – ist die Lack-Geheimdatei.

8. Starten Sie nun den Lackdienst. Aktivieren Sie zunächst den automatischen Start beim Systemstart im Falle eines Serverneustarts und überprüfen Sie wie folgt seinen Status, um sicherzustellen, dass er betriebsbereit ist.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

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

9. Jetzt ist es an der Zeit, Varnish Cache so zu konfigurieren, dass es vor dem Apache-Dienst ausgeführt wird. Standardmäßig ist der Apache-Server so konfiguriert, dass er Port 80 überwacht. Dies ist in der Hauptkonfigurationsdatei /etc/httpd/conf/httpd.conf definiert.

Öffnen Sie es zur Bearbeitung mit Ihrem bevorzugten Texteditor.

vi /etc/httpd/conf/httpd.conf

Suchen Sie nach dem Parameter Listen. Um Varnish vor dem Apache-Server auszuführen, sollten Sie den Standardport 80 in 8080 (oder einen anderen Port Ihrer Wahl) ändern im folgenden Screenshot dargestellt.

Dieser Port wird später als Port des Backend-Servers in der Varnish-Konfigurationsdatei hinzugefügt.

Außerdem sollte die virtuelle Hostkonfiguration für jede Website/Anwendung, die über Varnish bereitgestellt wird, so konfiguriert sein, dass sie den oben genannten Port überwacht. 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 Standardtestseite des Apache-HTTP-Servers jemals verwendet wird, kommentieren Sie alle Zeilen in der Datei /etc/httpd/conf.d aus /welcome.conf oder löschen Sie einfach die Datei.

rm /etc/httpd/conf.d/welcome.conf 

10. Als nächstes testen Sie die httpd-Konfigurationssyntax auf Fehler. Wenn alles in Ordnung ist, starten Sie den httpd-Dienst neu, um die neuen Änderungen zu übernehmen.

httpd -t
systemctl restart httpd

Varnish für Systemd konfigurieren

11. Um Varnish vor HTTPD bereitzustellen, müssen Sie es einfach so konfigurieren, dass es auf Client-Anfragen im Standard-HTTP-Port 80 lauscht, wie erläutert unten.

Beachten Sie, dass Sie in Varnish Cache 6.0 und höher den Port festlegen müssen, auf dem der Lackserver in der Varnish-Dienstdatei für systemd lauscht. Öffnen Sie es zunächst zur Bearbeitung.

systemctl edit --full  varnish

Suchen Sie nach der Zeile ExecStart und ändern Sie dann den Wert des Schalters -a (der angibt, dass der Lack die Adresse und den Port überwacht) von :6081 auf :80, wie im folgenden Screenshot gezeigt.

Wichtig: 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.

Konfigurieren von Varnish-Backend-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 kommuniziert, um Inhalte abzurufen – in diesem Fall httpd. Es wird in der Hauptkonfigurationsdatei /etc/varnish/default.vcl konfiguriert.

vi /etc/varnish/default.vcl 

Es gibt einen Standard-Backend-Konfigurationsabschnitt namens default. Sie können „default“ in server1 ändern (oder einen beliebigen Namen Ihrer Wahl, um Ihren Umgebungsstandards zu entsprechen). Standardmäßig verweist der Parameter host auf den localhost, vorausgesetzt, dass der Backend-Server auf dem localhost ausgeführt wird.

Stellen Sie dann den Port auf 8080 ein (den Port, den Sie in der Konfigurationsdatei des virtuellen Apache-Hosts 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, beispielsweise einem anderen Server mit der Adresse 10.42.1.10, dann sollte der Parameter host auf zeigen diese IP-Adresse.

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

Speichern Sie die Datei und schließen Sie sie.

13. Nachdem Sie alle erforderlichen Änderungen an Varnish vorgenommen haben, laden Sie die Konfiguration des systemd-Managers neu, um die neuen Änderungen in der Varnish-Dienstdatei widerzuspiegeln, und starten Sie ebenfalls neu den Lackdienst, um die Gesamtänderungen anzuwenden.

systemctl daemon-reload
systemctl restart varnish

14. Zu diesem Zeitpunkt sollten Varnish und Apache nun auf Port 80 bzw. 8080 lauschen. Sie können dies mit dem Socket Statistics-Befehl bestätigen.

ss -tpln

Schritt 4: Testen des Varnish Cache und des Apache-Setups

14. Um das Varnish Cache-HTTPD-Setup zu testen, öffnen Sie einen Webbrowser und navigieren Sie mit der Server-IP oder FQDN wie im folgenden Screenshot gezeigt.

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

Überprüfen Sie dann wie folgt, ob Webseiten über Varnish Cache bereitgestellt werden. Überprüfen Sie die HTTP-Header, indem Sie mit der rechten Maustaste auf die angezeigte Webseite klicken, Inspizieren auswählen, um die Entwicklertools zu öffnen, dann auf die Registerkarte Netzwerk klicken und Laden Sie die Seite neu. Wählen Sie dann eine Anfrage zum Anzeigen der HTTP-Header aus, um dies zu bestätigen, wie im folgenden Screenshot gezeigt.

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. Lassen Sie uns diesen Leitfaden mit einem Blick auf einige der nützlichen Programme beenden, die in der Varnish Cache-Distribution enthalten sind. Dazu gehören Dienstprogramme für die Verwaltung des Lackcaches, die Anzeige detaillierter Protokolldatensätze und die Anzeige von Lackleistungsstatistiken, wie unten beschrieben.

Lackadm

Das erste ist varnishadm, das zur Verwaltung einer laufenden Varnish-Instanz verwendet wird. Es stellt eine Befehlszeilenschnittstellenverbindung zu varnishd her. Es kann sich auf eine laufende Instanz von Varnish auswirken, indem es varnishd startet und stoppt, Konfigurationsparameter ändert, die VCL neu lädt, Backends auflistet und mehr.

varnishadm
> backend.list

Weitere Informationen finden Sie unter man lackadm.

Lackprotokoll

Das nächste Programm ist varnishlog, das für den Zugriff auf anfragespezifische Daten (d. h. Informationen über bestimmte Kunden und Anfragen) verwendet wird. Es liefert große Mengen an Informationen, daher ist es normalerweise notwendig, diese zu filtern.

varnishlog

Weitere Informationen finden Sie im man lacklog.

Lackstat

Wir haben auch varnishstat (Varnish Statistics), das für den Zugriff auf Gesamtstatistiken wie die Anzahl der Gesamtanfragen, die Anzahl der Objekte und mehr verwendet wird.

varnishstat

Weitere Informationen finden Sie im Man-Lackstat.

Lackplatte

Dann haben wir varnishtop, ein Dienstprogramm, das das Varnish-Protokoll liest und eine kontinuierlich aktualisierte Liste der am häufigsten vorkommenden Protokolleinträge anzeigt.

varnishtop 

Weitere Informationen finden Sie im Artikel Mann-Lacktop.

Lackhist

Ein weiteres nützliches Dienstprogramm ist das Dienstprogramm varnishhist (Varnish History), das Varnish-Protokolle liest und ein kontinuierlich aktualisiertes Histogramm anzeigt, das die Verteilung der letzten N Anfragen nach ihren Benutzern zeigt wird bearbeitet.

varnishhist

Weitere Informationen finden Sie im Man-Lackist.

Hier hast du es! Sie haben Varnish Cache erfolgreich bereitgestellt, um die Bereitstellung Ihrer Webanwendungsinhalte über den Apache HTTP-Server unter CentOS/RHEL 8 zu beschleunigen.

Wenn Sie Fragen zu diesem Thema haben oder Gedanken mitteilen möchten, verwenden Sie das unten stehende Feedback-Formular. Weitere Informationen finden Sie in der Dokumentation zu Varnish Cache 6.0.

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 mit Hitch unter CentOS/RHEL 8 aktivieren.