Varnish 7 voor Nginx installeren op Rocky Linux 8

Varnish cache is een gratis en open-source cache versneller die gebruikt wordt om je website te versnellen door de inhoud in het geheugen te cachen. Het is extreem snel en verkort de laadtijd van je pagina, wat je SERPs ten goede komt en de gebruikerservaring verbetert. Het wordt door veel organisaties gebruikt, waaronder Facebook, Twitter, en Wikipedia. Varnish zit tussen Nginx en clients die verzoeken van clients ontvangen en ze doorsturen naar de backend. Dit verbetert de webserver prestaties omdat Varnish inhoud uit het geheugen serveert.

In deze zelfstudie laat ik je zien hoe je Varnish 7 vóór Nginx installeert op Rocky Linux 8.

Vereisten

  • Een server waarop Rocky Linux 8 draait.
  • Een root wachtwoord is op de server ingesteld.

Installeer Varnish 7

Voor je begint, moet je de bestaande vernis modules van je systeem uitschakelen. Je kunt ze uitschakelen door het volgende commando uit te voeren:

dnf module disable varnish

Je zou de volgende uitvoer moeten zien:

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

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

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

Installeer vervolgens de EPEL repository met het volgende commando:

dnf install epel-release -y

Voeg vervolgens de Varnish Cache 7 repository aan je systeem toe met het volgende commando:

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

Zodra de repository is toegevoegd, installeer je de Varnish 7 met het volgende commando:

dnf install varnish -y

Controleer na de succesvolle installatie de informatie over Varnish met het volgende commando:

rpm -qi varnish

Je zou de volgende uitvoer moeten zien:

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.

Beheer Varnish Service

Na de installatie van Varnish start je de Varnish service en zet je hem aan om te starten bij het herstarten van het systeem met het volgende commando:

systemctl start varnish
systemctl enable varnish

Je kunt de status van de Varnish controleren met het volgende commando:

systemctl status varnish

Je krijgt de volgende uitvoer:

? 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.

Configureer Varnish

Standaard luistert Varnish op poort 6081. Hier zullen we Varnish gebruiken om inkomende HTTP verbindingen te accepteren. Je zult Varnish dus moeten instellen om te luisteren op poort 80. Je kunt dat doen door het bestand /usr/lib/systemd/system/varnish.service te bewerken:

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

Verander de poort 6081 in 80 zoals hieronder:

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

Bewaar en sluit het bestand en herlaad dan de systemd daemon om de veranderingen toe te passen:

systemctl daemon-reload

Herstart vervolgens de Varnish service om de veranderingen toe te passen:

systemctl restart varnish

Controleer vervolgens de Varnish luisterpoort met het volgende commando:

ss -antpl | grep varnish

Je zou de Varnish luisterpoort moeten zien in de volgende uitvoer:

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))

Configureer Nginx om met Varnish te werken

In dit onderdeel zullen we Nginx installeren en het instellen om met Varnish te werken. Installeer eerst het Nginx pakket met het volgende commando:

dnf install nginx -y

Na de installatie van Nginx moet je het Nginx configuratiebestand bewerken en de Nginx standaard luisterpoort veranderen van 80 in 8080.

Bewerk het Nginx hoofdconfiguratiebestand met het volgende commando:

nano /etc/nginx/nginx.conf

Zoek de volgende regels:

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

En vervang ze door de volgende regels:

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

Bewaar en sluit het bestand als je klaar bent en start dan de Nginx service om de veranderingen toe te passen:

systemctl start nginx

Je kunt ook de Nginx status controleren met het volgende commando:

systemctl status nginx

Je krijgt dan de volgende uitvoer:

? 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.

Verifieer Varnish Cache

Op dit punt is Varnish geïnstalleerd en geconfigureerd met de Nginx webserver. Nu is het tijd om de Varnish cache te testen.

Voer het volgende commando uit om de Varnish cache te verifiëren:

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

Als alles in orde is, krijg je de volgende uitvoer:

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

Conclusie

Gefeliciteerd! Je hebt Varnish met succes geïnstalleerd met Nginx op Rocky Linux 8. Je kunt Varnish nu in de productie omgeving implementeren om de prestaties van je website te versnellen. Voel je vrij me te vragen als je vragen hebt.