Ricerca nel sito web

Come installare e configurare Varnish con Apache su Ubuntu 22.04


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 16.04 (Xenial Xerus)

Su questa pagina

  1. Requisiti
  2. Installa e configura Apache Web Server
  3. Installa Varnish Cache
  4. Configura Varnish per lavorare con Apache
  5. Verifica cache vernice
  6. Conclusione

Varnish Cache è un acceleratore HTTP ad alte prestazioni progettato per siti Web dinamici ad alto traffico. Funge da intermediario tra il tuo client e il tuo server, gestendo tutte le richieste in entrata prima che arrivino sul back-end del tuo server web. Varnish memorizza nella cache una copia di ogni pagina web servita dal server web. Quando un utente richiede una pagina memorizzata nella cache, Varnish serve la copia memorizzata nella cache invece di richiedere ripetutamente la stessa pagina dal server di backend. Rende la Full Page Cache di Varnish così ideale per negozi con negozi ad alto traffico e migliaia di prodotti.

Questo post ti mostrerà come installare Varnish Cache e configurarlo con Apache su Ubuntu 22.04.

Requisiti

  • Un server che esegue Ubuntu 22.04.
  • Una password di root è configurata sul tuo server.

Installa e configura Apache Web Server

Prima di iniziare, il web server Apache deve essere installato sul tuo server. Se non è installato, puoi installarlo con il seguente comando:

apt install apache2 -y

Successivamente, dovrai modificare il file di configurazione di Apache e cambiare la porta predefinita in qualcosa di diverso.

nano /etc/apache2/ports.conf

Trova la seguente riga:

Listen 80

E, sostituito con la seguente riga:

Listen 8080

Salva e chiudi il file, quindi modifica il file di configurazione dell'host virtuale predefinito di Apache:

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

Trova la seguente riga:

<VirtualHost *:80>

E sostituirlo con la seguente riga:

<VirtualHost *:8080>

Salva e chiudi il file, quindi riavvia il servizio Apache per applicare le modifiche:

systemctl restart apache2

Ora puoi controllare la porta di ascolto di Apache usando il seguente comando:

ss -antpl | grep 8080

Dovresti vedere il seguente output:

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

Installa Varnish Cache

Per impostazione predefinita, l'ultima versione della cache di Varnish non è disponibile nel repository predefinito di Ubuntu. Quindi dovrai aggiungere il repository Varnish ad APT.

Innanzitutto, installa le dipendenze richieste utilizzando il seguente comando:

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

Successivamente, aggiungi la chiave Varnish GPG utilizzando il seguente comando:

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

Quindi, crea un file sorgente di Varnish:

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

Aggiungi la seguente riga:

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

Salva e chiudi il file, quindi crea un altro file di configurazione:

nano /etc/apt/preferences.d/varnish

Aggiungi le seguenti righe:

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

Salva e chiudi il file, quindi aggiorna la cache del repository con il seguente comando:

apt update

Successivamente, installa Varnish Cache con il seguente comando:

apt install varnish -y

Dopo aver installato Varnish Cache, modifica il file default.vcl e definisci il tuo server di backend:

nano /etc/varnish/default.vcl

Modifica le seguenti righe in base al tuo server di backend:

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

Salva e chiudi il file quando hai finito.

Configura Varnish per lavorare con Apache

Successivamente, è necessario creare un file di configurazione del servizio personalizzato per Varnish.

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

Aggiungi le seguenti righe:

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

Salva e chiudi il file, quindi ricarica il demone systemd con il seguente comando:

systemctl daemon-reload

Successivamente, riavvia il servizio Varnish con il seguente comando:

systemctl restart varnish

Ora puoi controllare lo stato di Varnish Cache con il seguente comando:

systemctl status varnish

Dovresti ottenere il seguente output:

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

A questo punto, Varnish è installato ed è in ascolto sulla porta 80. Puoi verificarlo con il seguente comando:

ss -antpl | grep :80

Otterrai il seguente output:

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

Verifica cache vernice

Ora puoi verificare la cache di Varnish usando il comando CURL:

curl -I http://localhost/

Otterrai la cache di vernice nel seguente output:

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

Conclusione

Congratulazioni! hai installato con successo Varnish Cache con Apache su Ubuntu 22.04. Ora puoi utilizzare la cache di Varnish nel tuo server per accelerare il tempo di caricamento del sito web. Non esitate a chiedermi se avete domande.