So beschleunigen Sie Apache mit Varnish Cache unter CentOS 7

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

  1. A CentOS 7 with Apache installed
  2. A CentOS 7 with a static IP address

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
Install Apache on CentOS 7

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
Start and Enable Apache

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
Open Apache Port on Firewall

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 
Install Varnish Cache in CentOS 7

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
Start Varnish Cache

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
Change Varnish Cache Port

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/