Varnish Cache mit Apache unter Ubuntu 22.04 installieren

Varnish Cache ist ein leistungsstarker HTTP-Beschleuniger, der für dynamische Websites mit hohem Datenverkehr entwickelt wurde. Er fungiert als Vermittler zwischen deinem Client und deinem Server und bearbeitet alle eingehenden Anfragen, bevor sie auf dem Backend deines Webservers landen. Varnish speichert eine Kopie jeder vom Webserver bereitgestellten Webseite im Cache. Wenn ein Nutzer eine zwischengespeicherte Seite anfordert, stellt Varnish die zwischengespeicherte Kopie bereit, anstatt die gleiche Seite immer wieder vom Backend-Server anzufordern. Das macht den Full Page Cache von Varnish so ideal für Shops mit hohem Traffic und tausenden von Produkten.

In diesem Beitrag zeige ich dir, wie du den Varnish Cache installierst und mit Apache auf Ubuntu 22.04 konfigurierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein Root-Passwort ist auf deinem Server eingerichtet.

Installiere und konfiguriere den Apache-Webserver

Bevor du beginnst, muss der Apache-Webserver auf deinem Server installiert sein. Wenn er nicht installiert ist, kannst du ihn mit dem folgenden Befehl installieren:

apt install apache2 -y

Als Nächstes musst du die Apache-Konfigurationsdatei bearbeiten und den Standard-Port in einen anderen ändern.

nano /etc/apache2/ports.conf

Suche die folgende Zeile:

Listen 80

Und ersetze sie durch die folgende Zeile:

Listen 8080

Speichere und schließe die Datei und bearbeite dann die Konfigurationsdatei für den virtuellen Apache-Standardhost:

nano /etc/apache2/sites-available/000-default.conf

Finde die folgende Zeile:

<VirtualHost *:80>

Und ersetze sie durch die folgende Zeile:

<VirtualHost *:8080>

Speichere und schließe die Datei und starte dann den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Jetzt kannst du den Apache-Listening-Port mit dem folgenden Befehl überprüfen:

ss -antpl | grep 8080

Du solltest die folgende Ausgabe sehen:

LISTEN 0      511                *:8080            *:*    users:(("apache2",pid=2553,fd=4),("apache2",pid=2552,fd=4),("apache2",pid=2551,fd=4))

Varnish Cache installieren

Standardmäßig ist die neueste Version von Varnish Cache nicht im Standard-Repository von Ubuntu verfügbar. Daher musst du das Varnish-Repository zur APT hinzufügen.

Installiere zunächst die erforderlichen Abhängigkeiten mit dem folgenden Befehl:

apt install debian-archive-keyring curl gnupg apt-transport-https -y

Als Nächstes fügst du den Varnish GPG-Schlüssel mit dem folgenden Befehl hinzu:

curl -fsSL https://packagecloud.io/varnishcache/varnish70/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/varnish.gpg

Als Nächstes erstellst du eine Varnish-Quelldatei:

nano /etc/apt/sources.list.d/varnishcache_varnish70.list

Füge die folgende Zeile hinzu:

deb https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main
deb-src https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main

Speichere und schließe die Datei und erstelle dann eine weitere Konfigurationsdatei:

nano /etc/apt/preferences.d/varnish

Füge die folgenden Zeilen hinzu:

Package: varnish
Pin: origin packagecloud.io
Pin-Priority: 900

Speichere und schließe die Datei und aktualisiere den Repository-Cache mit dem folgenden Befehl:

apt update

Als Nächstes installierst du den Varnish-Cache mit dem folgenden Befehl:

apt install varnish -y

Sobald Varnish Cache installiert ist, bearbeite die Datei default.vcl und definiere deinen Backend-Server:

nano /etc/varnish/default.vcl

Ändere die folgenden Zeilen entsprechend deines Backend-Servers:

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

Speichere und schließe die Datei, wenn du fertig bist.

Varnish für die Zusammenarbeit mit Apache konfigurieren

Als Nächstes musst du eine eigene Dienstkonfigurationsdatei für Varnish erstellen.

mkdir /etc/systemd/system/varnish.service.d
nano /etc/systemd/system/varnish.service.d/customport.conf

Füge die folgenden Zeilen hinzu:

[Service]
ExecStart=
ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m

Speichere und schließe die Datei und lade dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Als Nächstes startest du den Varnish-Dienst mit dem folgenden Befehl neu:

systemctl restart varnish

Jetzt kannst du den Status des Varnish-Caches mit dem folgenden Befehl überprüfen:

systemctl status varnish

Du solltest die folgende Ausgabe erhalten:

? varnish.service - Varnish Cache, a high-performance HTTP accelerator
     Loaded: loaded (/lib/systemd/system/varnish.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/varnish.service.d
             ??customport.conf
     Active: active (running) since Tue 2022-10-18 13:07:44 UTC; 14s ago
    Process: 4968 ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m (c>
   Main PID: 4969 (varnishd)
      Tasks: 217
     Memory: 90.6M
        CPU: 595ms
     CGroup: /system.slice/varnish.service
             ??4969 /usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m
             ??4983 /usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m

Oct 18 13:07:43 ubuntu2204 systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Oct 18 13:07:44 ubuntu2204 varnishd[4969]: Version: varnish-7.0.3 revision 6a4c6a5c7e66a664b140278c209f0b18c544cab8
Oct 18 13:07:44 ubuntu2204 varnishd[4969]: Platform: Linux,5.15.0-33-generic,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Oct 18 13:07:44 ubuntu2204 varnishd[4969]: Child (4983) Started
Oct 18 13:07:44 ubuntu2204 varnishd[4969]: Child (4983) said Child starts
Oct 18 13:07:44 ubuntu2204 systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.

Zu diesem Zeitpunkt ist Varnish installiert und lauscht auf Port 80. Du kannst das mit dem folgenden Befehl überprüfen:

ss -antpl | grep :80

Du erhältst die folgende Ausgabe:

LISTEN 0      1024         0.0.0.0:80         0.0.0.0:*    users:(("cache-main",pid=4983,fd=3),("varnishd",pid=4969,fd=3))
LISTEN 0      1024            [::]:80            [::]:*    users:(("cache-main",pid=4983,fd=5),("varnishd",pid=4969,fd=5))
LISTEN 0      511                *:8080             *:*    users:(("apache2",pid=4749,fd=4),("apache2",pid=4748,fd=4),("apache2",pid=4745,fd=4))

Varnish-Cache überprüfen

Jetzt kannst du den Varnish-Cache mit dem CURL-Befehl überprüfen:

curl -I http://localhost/

Die folgende Ausgabe zeigt dir den Varnish-Cache an:

HTTP/1.1 200 OK
Date: Tue, 18 Oct 2022 13:08:27 GMT
Server: Apache/2.4.52 (Ubuntu)
Last-Modified: Tue, 18 Oct 2022 13:03:09 GMT
Vary: Accept-Encoding
Content-Type: text/html
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/7.0)
ETag: W/"29af-5eb4eb6b9e071-gzip"
Accept-Ranges: bytes
Content-Length: 10671
Connection: keep-alive

Fazit

Herzlichen Glückwunsch! Du hast Varnish Cache mit Apache unter Ubuntu 22.04 erfolgreich installiert. Jetzt kannst du den Varnish Cache auf deinem Server nutzen, um die Ladezeit deiner Website zu beschleunigen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …