Varnish è un server proxy incentrato sulla memorizzazione nella cache HTTP. È progettato come un acceleratore HTTP e può fungere da proxy inverso per il tuo server web (Apache o Nginx). La vernice è stata utilizzata per siti Web di alto profilo e ad alto traffico, tra cui Wikipedia, The Guardian e The New York Times.
In questo tutorial, ti mostreremo come installare e configurare l'acceleratore HTTP Varnish come proxy inverso per il server Web Apache. Il vero server web Apache verrà eseguito su una porta HTTP non standard (in esecuzione sulla porta 8080). E Varnish verrà eseguito come proxy inverso sulla porta HTTP 80. Per questa guida, utilizzeremo il server Ubuntu 16.04.
Cosa faremo
- Installa il server Web Apache
- Cambia la porta predefinita di Apache
- Installa vernice
- Configura vernice
- Verifica la configurazione
Prerequisiti
- Ubuntu 16.04
- Privilegi di root
Passaggio 1:installazione del server Web Apache
Per iniziare, installa il server web Apache. Per impostazione predefinita, è disponibile nel repository di Ubuntu.
Aggiorna il repository di Ubuntu e quindi installa Apache usando il comando apt.
sudo apt update
sudo apt install -y apache2
Al termine dell'installazione, avvia il servizio Apache e abilitalo all'esecuzione automatica all'avvio del sistema utilizzando i seguenti comandi systemctl.
systemctl start apache2
systemctl enable apache2
Il server web Apache è stato installato.
Successivamente, per consentire a tutti l'accesso al server Web, dobbiamo consentire HTTP e HTTPS sulla nostra regola del firewall. Per impostazione predefinita, Ubuntu viene fornito con un pacchetto firewall denominato UFW.
Apri nuove porte SSH, HTTP e HTTPS utilizzando i seguenti comandi ufw.
ufw allow ssh
ufw allow http
ufw allow https
Ora avvia il servizio firewall e abilitalo all'avvio automatico all'avvio del sistema.
ufw enable
Digita 'y' e premi Invio per confermare.
Nuove porte per http, https e ssh sono state aperte e sono accessibili dall'esterno della rete.
Se vuoi testare il server web Apache, puoi usare il comando netstat e assicurarti che Apache sia in esecuzione sotto la porta 80.
netstat -plntu
Oppure puoi usare il seguente comando curl.
curl -I hakase-labs.co
Dovresti ottenere il risultato come mostrato di seguito.
Passaggio 2:modifica della porta predefinita di Apache
In questo tutorial, utilizzeremo Apache come server back-end e non funzionerà con la porta http standard 80. Il server Web Apache verrà eseguito sulla porta 8080 come back-end e la porta http standard 80 verrà utilizzata da ' Vernice'.
Per modificare la porta Apache predefinita, dobbiamo modificare la configurazione di Apache 'ports.conf' e tutta la configurazione dell'host virtuale nella directory 'sites-available'.
Vai alla directory di configurazione di Apache.
cd /etc/apache2
Sostituisci la porta '80' con '8080' nella configurazione di Apache 'ports.conf' e tutti i file host virtuali nella directory 'sites-available'. Possiamo farlo eseguendo i seguenti comandi sed.
sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*
Quindi, verifica la configurazione di Apache e assicurati che non ci siano errori, quindi riavvia il servizio Apache.
apachectl configtest
systemctl restart apache2
Ora Apache è in esecuzione sotto la porta http '8080', controllalo usando il comando netstat come mostrato di seguito.
netstat -plntu
Assicurati di avere il risultato come di seguito.
Quindi puoi vedere che il server Web Apache è in esecuzione sulla porta '8080'.
Passaggio 3:installazione di Varnish HTTP Accelerator
In questo passaggio, installeremo Varnish dal repository di Ubuntu. E per questa guida useremo la vernice 4.
Installa vernice usando il seguente comando apt.
sudo apt install -y varnish
Al termine dell'installazione, avvia Varnish e abilita l'avvio automatico all'avvio del sistema.
systemctl start varnish
systemctl enable varnish
La vernice è stata installata sul sistema Ubuntu 16.04.
Per impostazione predefinita, funziona con le porte "6081" per l'indirizzo pubblico e "6082" per l'indirizzo localhost. Controllalo usando il comando netstat di seguito.
netstat -plntu
E otterrai la porta di vernice predefinita.
Passaggio 4:configurare Varnish come proxy inverso per Apache
In questo passaggio, configureremo la vernice nella parte anteriore del server Web Apache. Varnish verrà eseguito sulla porta http 80 e ogni richiesta dai client verrà gestita da essa, prima di essere inviata al server Web Apache in esecuzione sulla porta 8080.
- Configurazione back-end
Vai alla directory di configurazione 'vernish' ed esegui il backup del file predefinito 'default.vcl'.
cd /etc/varnish/
cp default.vcl default.vcl.aseli
Modifica la configurazione di vernice 'default.vcl' usando l'editor vim.
vim default.vcl
Definisci la configurazione "backend" alla riga 16. Il backend per la nostra configurazione è Apache ed è in esecuzione sulla porta 8080. Quindi la configurazione di vernice per la nostra configurazione di Apache dovrebbe essere la seguente:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Salva ed esci.
- Esecuzione di vernice sulla porta 80
Successivamente, dobbiamo modificare le porte di vernice predefinite. Le porte predefinite per la vernice sono "6081" e "6082" e dobbiamo cambiare la porta sulla porta http 80 (solo per l'indirizzo pubblico).
Modifica la configurazione dei parametri di vernice nella directory '/etc/default'.
cd /etc/default/
vim varnish
Modifica la riga 'DAEMON_OPTS', cambia la porta predefinita '6081' per l'indirizzo pubblico con la porta http standard '80' come mostrato di seguito.
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Salva ed esci.
Successivamente, dobbiamo modificare il file del servizio di vernice 'varnish.service'. Vai alla directory '/lib/systemd/system' e modifica il file di servizio usando vim.
cd /lib/systemd/system/
vim varnish.service
Nella riga 'ExecStart', cambia il comando di avvio di vernice come di seguito.
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
Salva ed esci.
Ricarica la configurazione del servizio systemd e quindi riavvia Paint.
systemctl daemon-reload
systemctl restart varnish
Ora controlla la vernice e assicurati che sia in esecuzione sulla porta http 80.
netstat -plntu
Quindi Varnish è ora in esecuzione sotto la porta http 80 come front-end per il server Web Apache, che si trova sulla porta 8080.
Fase 5 - Test
Prova usando il comando curl.
curl -I hakase-labs.co
Assicurati di ottenere l'intestazione http come mostrato di seguito.
Verificando dal browser web, l'URL del mio server di prova è: http://hakase-labs.co/. Scegli qui l'URL del tuo server.
E riceviamo ancora contenuti Apache.
Controlla il registro della vernice usando il comando 'vernishncsa'.
varnishncsa
E otteniamo il registro solo dal registro di accesso di Apache.
L'installazione e la configurazione della vernice per il server Web Apache sono state completate.
Riferimento
- Cache di vernice
- Apache HTTPD