Varnish Cache (allgemein bekannt als Varnish) ist ein quelloffenes, populäres Rückproxy-HTTP-Accelerator, das dazu gedacht ist, den Webserver zu beschleunigen. Es ist ausgelegt für API-Endpunkte mit übermäßiger Nutzung und auch für dynamische Websites, die großen Inhalten und hohem Traffic ausgesetzt sind.
Es hilft grundsätzlich, den CPU-Last zu verringern, unterstützt Lastenbalancing auf Web-Servern und ermöglicht es Web-Browsern, Seiten schnell zu laden, da der Cache in RAM abgelegt wird. Es wird von vielen großen Unternehmen verwendet, darunter Facebook, Twitter und Wikipedia, um nur einige zu nennen.
Anforderungen
In diesem Artikel erkläre ich, wie man Varnish Cache 6.5 als Frontend für einen Apache-Webserver auf CentOS 7 (auch auf RHEL 7 funktioniert) installiert und verwendet.
Schritt 1: Installieren des Apache-Webservers auf CentOS 7
1. Installiere zunächst den Apache HTTP Server aus den standardmäßigen CentOS-Software-Repositories mit dem YUM-Paketmanager wie folgt.
# yum install httpd

2. Wenn Apache installiert ist, starte ihn zunächst und aktiviere ihn, damit er automatisch beim Boot des Systems startet.
# systemctl start httpd # systemctl enable httpd # systemctl status httpd

3. Aktualisieren Sie als nächstes die Firewall-Regeln des Systems, um eingehende Pakete auf Port 80 zuzulassen, indem Sie die folgenden Befehle verwenden.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload

Schritt 2: Installieren Sie Varnish Cache auf CentOS 7
4. Es gibt jetzt vorkompilierte RPM-Pakete für die neueste Version von Varnish Cache 6 (d.h. 6.5 zum Zeitpunkt des Schreibens). Daher müssen Sie das offizielle Varnish Cache-Repository hinzufügen.
Davor müssen Sie das EPEL-Repository aktivieren, um mehrere Abhängigkeitspakete wie unten gezeigt zu installieren.
# yum install -y epel-release
5. Installieren Sie nun pygpgme, ein Paket zur Verarbeitung von GPG-Signaturen, und yum-utils, eine Sammlung nützlicher Dienstprogramme, die die nativen Funktionen von yum auf verschiedene Weise erweitern.
# yum install pygpgme yum-utils
6. Erstellen Sie nun eine Datei mit dem Namen /etc/yum.repos.d/varnishcache_varnish65.repo, die die unten stehende Repository-Konfiguration enthält.
# vi /etc/yum.repos.d/varnishcache_varnish65.repo
Wichtig: Stellen Sie sicher, dass Sie in der unten stehenden Konfiguration el
und 7
durch Ihre Linux-Distribution und Version ersetzen:
[varnishcache_varnish65] name=varnishcache_varnish65 baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [varnishcache_varnish65-source] name=varnishcache_varnish65-source baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
7. Führen Sie nun den folgenden Befehl aus, um Ihren lokalen yum-Cache zu aktualisieren und das Varnish-Cache-Paket zu installieren (vergessen Sie nicht, den GPG-Schlüssel zu akzeptieren, indem Sie während der Installation y
oder yes
eingeben):
# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65' # yum install varnish

8. Nach der Installation von Varnish Cache wird das Hauptprogramm unter /usr/sbin/varnishd installiert und die Varnish-Konfigurationsdateien befinden sich in /etc/varnish/:
- /etc/varnish/default.vcl – Dies ist die Haupt-Varnish-Konfigurationsdatei, die mit der Varnish-Konfigurationssprache (VCL) geschrieben ist.
9. Jetzt starten Sie den Varnish-Dienst, aktivieren Sie ihn, dass er beim Systemstart automatisch gestartet wird, und überprüfen Sie seinen Status, um sicherzugehen, dass er laufend ist. Folgendermaßen zeigt Ihre Ausgabe die Statusänderung an:
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

10. Sie können die erfolgreiche Installation von Varnish bestätigen, indem Sie die Position des Varnish-Executables und der installierten Version auf Ihrem System überprüfen.
$ which varnishd $ varnishd -V
Beispielausgabe
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2020 Varnish Software
Schritt 3: Konfigurieren von Apache, um mit Varnish Cache zusammenzuarbeiten
11. Konfigurieren Sie Apache nun, um mit Varnish Cache zusammenzuarbeiten. Standardmäßig hört Apache auf Port 80 zu lassen, Sie müssen den Standard-HTTPD-Port auf 8080 ändern – dies sorgt dafür, dass HTTPD hinter Varnish Caching laufen kann.
Sie können die sed-Anweisung verwenden, um Port 80 auf 8080 zu ändern, wie unten gezeigt.
# sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf
Hinweis: Außerdem müssen Sie den Port in Ihrer virtuellen Host-Konfiguration für jedes Website, das Sie über Varnish bedienen möchten, ändern. Hier ist die Konfiguration für unsere Testwebsite (/etc/httpd/conf.d/tecmint.lan.conf).
<VirtualHost *:8080> DocumentRoot "/var/www/html/tecmint.lan/" ServerName www.tecmint.lan # Other directives here </VirtualHost>
12. Öffnen Sie als Nächstes die Varnish-Systemd-Konfigurationsdatei und suchen Sie den Parameter ExecStart, der den Port angibt, auf dem Varnish lauscht, und ändern Sie seinen Wert von 6081 auf 80, wie im Screenshot gezeigt.
# systemctl edit --full varnish
Die Konfiguration sollte nach Abschluss wie folgt aussehen.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. Richten Sie Apache als Backend-Server für den Varnish-Proxy in der Konfigurationsdatei /etc/varnish/default.vcl ein.
# vi /etc/varnish/default.vcl
Suchen Sie den Abschnitt backend und definieren Sie die Host-IP und den Port. Unten finden Sie die Standard-Backend-Konfiguration. Ändern Sie dies so, dass es auf Ihren tatsächlichen Inhalts-Server zeigt.
backend default { .host = "127.0.0.1"; .port = "8080"; }
Wenn Ihr Backend-Server auf einem anderen Server mit der Adresse 10.42.1.10 ausgeführt wird, sollte der Host-Parameter auf diese IP-Adresse zeigen.
backend server1 { .host = "10.42.1.10"; .port = "8080"; }
14. Nachdem Sie alle erforderlichen Konfigurationen durchgeführt haben, starten Sie HTTPD und den Varnish-Cache neu, um die oben genannten Änderungen wirksam zu machen.
# systemctl daemon-reload # systemctl restart httpd # systemctl restart varnish
Schritt 4: Testen Sie den Varnish-Cache auf Apache
15. Testen Sie abschließend, ob Varnish mit dem HTTPD-Dienst mithilfe des cURL-Befehls unten aktiviert und funktioniert werden kann, mit dem der HTTP-Header angezeigt werden kann.
# curl -I http://localhost
Beispieloutput
HTTP/1.1 200 OK Date: Wed, 06 Jan 2021 08:36:07 GMT Server: Apache/2.4.6 (CentOS) Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT ETag: "1321-5058a1e728280" Accept-Ranges: bytes Content-Length: 4897 Content-Type: text/html; charset=UTF-8 X-Varnish: 131085 Age: 0 Via: 1.1 varnish (Varnish/6.5) Connection: keep-alive
Weitere Informationen finden Sie im Varnish-Cache-GitHub-Repository: https://github.com/varnishcache/varnish-cache
In diesem Tutorial haben wir erklärt, wie man den Varnish Cache 6.5-Proxy für den Apache HTTP-Server unter CentOS 7 einrichtet. Falls Sie Fragen haben oder zusätzliche Ideen teilen möchten, nutzen Sie das unten stehende Feedback-Formular, um uns zu schreiben.
Source:
https://www.tecmint.com/install-varnish-cache-on-centos-7-for-apache/