So installierst du Varnish 7 für Nginx auf Rocky Linux 8

Der Varnish-Cache ist ein kostenloser und quelloffener Cache-Beschleuniger, der deine Website durch das Zwischenspeichern der Inhalte im Speicher beschleunigt. Er ist extrem schnell und reduziert die Ladezeit der Seite, was sich positiv auf die SERPs auswirkt und das Nutzererlebnis verbessert. Er wird von vielen Organisationen genutzt, darunter Facebook, Twitter und Wikipedia. Varnish sitzt zwischen Nginx und den Clients, die die Anfragen der Clients empfangen und an das Backend weiterleiten. Dadurch wird die Leistung des Webservers verbessert, weil Varnish die Inhalte aus dem Speicher ausliefert.

In diesem Lernprogramm zeige ich dir, wie du Varnish 7 vor Nginx auf Rocky Linux 8 installierst.

Voraussetzungen

  • Ein Server, auf dem Rocky Linux 8 läuft.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Varnish 7 installieren

Bevor du beginnst, musst du die vorhandenen Varnish-Module auf deinem System deaktivieren. Du kannst sie deaktivieren, indem du den folgenden Befehl ausführst:

dnf module disable varnish

Du solltest die folgende Ausgabe sehen:

==============================================================================================================================================
 Package                           Architecture                     Version                           Repository                         Size
==============================================================================================================================================
Disabling modules:
 varnish                                                                                                                                     

Transaction Summary
==============================================================================================================================================

Is this ok [y/N]: y
Complete!

Als Nächstes installierst du das EPEL-Repository mit folgendem Befehl:

dnf install epel-release -y

Als Nächstes fügst du das Varnish Cache 7 Repository mit dem folgenden Befehl zu deinem System hinzu:

curl -s https://packagecloud.io/install/repositories/varnishcache/varnish70/script.rpm.sh | bash

Sobald das Repository hinzugefügt wurde, installierst du Varnish 7 mit dem folgenden Befehl:

dnf install varnish -y

Nach der erfolgreichen Installation überprüfst du die Informationen über Varnish mit dem folgenden Befehl:

rpm -qi varnish

Du solltest die folgende Ausgabe sehen:

Name        : varnish
Version     : 7.0.2
Release     : 1.el8
Architecture: x86_64
Install Date: Sunday 13 February 2022 06:24:35 AM UTC
Group       : System Environment/Daemons
Size        : 8907085
License     : BSD
Signature   : (none)
Source RPM  : varnish-7.0.2-1.el8.src.rpm
Build Date  : Wednesday 12 January 2022 02:25:34 PM UTC
Build Host  : 7fc509e75620
Relocations : (not relocatable)
URL         : https://www.varnish-cache.org/
Summary     : High-performance HTTP accelerator
Description :
This is Varnish Cache, a high-performance HTTP accelerator.

Varnish-Dienst verwalten

Nach der Installation von Varnish startest du den Varnish-Dienst und aktivierst ihn mit folgendem Befehl, damit er beim Neustart des Systems gestartet wird:

systemctl start varnish
systemctl enable varnish

Du kannst den Status von Varnish mit dem folgenden Befehl überprüfen:

systemctl status varnish

Du erhältst die folgende Ausgabe:

? varnish.service - Varnish Cache, a high-performance HTTP accelerator
   Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-02-13 06:24:56 UTC; 6s ago
  Process: 2555 ExecStart=/usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m (c>
 Main PID: 2556 (varnishd)
    Tasks: 217
   Memory: 104.5M
   CGroup: /system.slice/varnish.service
           ??2556 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m
           ??2567 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m

Feb 13 06:24:55 rockylinux systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Feb 13 06:24:55 rockylinux varnishd[2556]: Version: varnish-7.0.2 revision 9b5f68e19ca0ab60010641e305fd12822f18d42c
Feb 13 06:24:55 rockylinux varnishd[2556]: Platform: Linux,4.18.0-348.12.2.el8_5.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Feb 13 06:24:55 rockylinux varnishd[2556]: Child (2567) Started
Feb 13 06:24:56 rockylinux varnishd[2556]: Child (2567) said Child starts
Feb 13 06:24:56 rockylinux systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.

Varnish konfigurieren

Standardmäßig lauscht Varnish auf Port 6081. Hier werden wir Varnish verwenden, um eingehende HTTP-Verbindungen zu akzeptieren. Daher musst du Varnish so konfigurieren, dass es auf Port 80 lauscht. Du kannst dies tun, indem du die Datei /usr/lib/systemd/system/varnish.service bearbeitest:

nano /usr/lib/systemd/system/varnish.service

Ändere den Port 6081 in 80, wie unten gezeigt:

ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,2g

Speichere und schließe die Datei und lade den systemd-Daemon neu, um die Änderungen zu übernehmen:

systemctl daemon-reload

Starte anschließend den Varnish-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart varnish

Überprüfe als Nächstes den Varnish-Listening-Port mit dem folgenden Befehl:

ss -antpl | grep varnish

Du solltest den Varnish Listening Port in der folgenden Ausgabe sehen:

LISTEN 0      10         127.0.0.1:46093      0.0.0.0:*    users:(("varnishd",pid=2819,fd=13))                            
LISTEN 0      128          0.0.0.0:80         0.0.0.0:*    users:(("cache-main",pid=2830,fd=6),("varnishd",pid=2819,fd=6))
LISTEN 0      128        127.0.0.1:8443       0.0.0.0:*    users:(("cache-main",pid=2830,fd=9),("varnishd",pid=2819,fd=9))
LISTEN 0      10             [::1]:33963         [::]:*    users:(("varnishd",pid=2819,fd=12))                            
LISTEN 0      128             [::]:80            [::]:*    users:(("cache-main",pid=2830,fd=7),("varnishd",pid=2819,fd=7))
LISTEN 0      128            [::1]:8443          [::]:*    users:(("cache-main",pid=2830,fd=8),("varnishd",pid=2819,fd=8))

Nginx für die Zusammenarbeit mit Varnish konfigurieren

In diesem Abschnitt installieren wir Nginx und konfigurieren es für die Zusammenarbeit mit Varnish. Zuerst installierst du das Nginx-Paket mit dem folgenden Befehl:

dnf install nginx -y

Nach der Installation von Nginx musst du die Nginx-Konfigurationsdatei bearbeiten und den Nginx-Standard-Listening-Port von 80 auf 8080 ändern.

Bearbeite die Hauptkonfigurationsdatei von Nginx mit dem folgenden Befehl:

nano /etc/nginx/nginx.conf

Finde die folgenden Zeilen:

	listen       80 default_server;
        listen       [::]:80 default_server;

Und ersetze sie durch die folgenden Zeilen:

	listen       8080 default_server;
        listen       [::]:8080 default_server;

Speichere und schließe die Datei, wenn du fertig bist, und starte den Nginx-Dienst, um die Änderungen zu übernehmen:

systemctl start nginx

Du kannst den Nginx-Status auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du erhältst die folgende Ausgabe:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-02-13 06:29:02 UTC; 8s ago
  Process: 5627 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 5626 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 5624 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 5629 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 6.7M
   CGroup: /system.slice/nginx.service
           ??5629 nginx: master process /usr/sbin/nginx
           ??5630 nginx: worker process

Feb 13 06:29:02 rockylinux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Feb 13 06:29:02 rockylinux nginx[5626]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Feb 13 06:29:02 rockylinux nginx[5626]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Feb 13 06:29:02 rockylinux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Feb 13 06:29:02 rockylinux systemd[1]: Started The nginx HTTP and reverse proxy server.

Verify Varnish Cache

Jetzt ist Varnish installiert und mit dem Nginx-Webserver konfiguriert. Nun ist es an der Zeit, den Varnish-Cache zu testen.

Führe den folgenden Befehl aus, um den Varnish-Cache zu überprüfen:

curl -I http://your-server-ip

Wenn alles in Ordnung ist, erhältst du die folgende Ausgabe:

HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sun, 13 Feb 2022 06:30:06 GMT
Content-Type: text/html
Content-Length: 3429
Last-Modified: Thu, 10 Jun 2021 09:09:03 GMT
ETag: "60c1d6af-d65"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/7.0)
Accept-Ranges: bytes
Connection: keep-alive

Schlussfolgerung

Herzlichen Glückwunsch! Du hast Varnish erfolgreich mit Nginx auf Rocky Linux 8 installiert. Jetzt kannst du Varnish in der Produktionsumgebung einsetzen, um die Leistung deiner Website zu steigern. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …