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.