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
- Requisiti
- Installa e configura Apache Web Server
- Installa Varnish Cache
- Configura Varnish per lavorare con Apache
- Verifica cache vernice
- 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.