Varnish je proxy server zaměřený na ukládání do mezipaměti HTTP. Je navržen jako HTTP akcelerátor a může fungovat jako reverzní proxy pro váš webový server (Apache nebo Nginx). Lak byl použit pro vysoce profilované a vysoce navštěvované webové stránky, včetně Wikipedie, The Guardian a The New York Times.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat akcelerátor Varnish HTTP jako reverzní proxy pro webový server Apache. Skutečný webový server Apache poběží pod nestandardním HTTP portem (běží na portu 8080). A Varnish poběží jako reverzní proxy na HTTP portu 80. V této příručce budeme používat server Ubuntu 18.04 LTS.
Co uděláme
- Nainstalujte webový server Apache
- Změnit výchozí port Apache
- Nainstalujte lak
- Nakonfigurujte lak
- Otestujte nastavení
Předpoklady
- Ubuntu 18.04 LTS
- Oprávnění uživatele root
Krok 1 – Instalace webového serveru Apache
Chcete-li začít, nainstalujte webový server Apache. Ve výchozím nastavení je k dispozici v úložišti Ubuntu.
Aktualizujte úložiště Ubuntu a poté nainstalujte Apache pomocí příkazu apt.
apt update
apt install -y apache2
Po dokončení instalace spusťte službu Apache a povolte její automatické spouštění při spouštění systému pomocí následujících příkazů systemctl.
systemctl start apache2
systemctl enable apache2
Webový server Apache byl nainstalován.
Dále, abychom všem umožnili přístup k webovému serveru, musíme povolit HTTP a HTTPS v našem pravidle brány firewall. Ve výchozím nastavení je Ubuntu dodáváno s balíčkem brány firewall s názvem UFW.
Otevřete nové porty SSH, HTTP a HTTPS pomocí následujících příkazů UFW.
ufw allow ssh
ufw allow http
ufw allow https
Nyní spusťte službu brány firewall a povolte její automatické spouštění při spouštění systému.
ufw enable
Zadejte „y“ a potvrďte stisknutím klávesy Enter.
Byly otevřeny nové porty pro HTTP, HTTPS a SSH a jsou přístupné zvenčí ze sítě.
Pokud chcete otestovat webový server Apache, můžete použít příkaz netstat a ujistit se, že apache běží pod portem 80.
netstat -plntu
Nebo můžete použít následující příkaz curl.
curl -I hakase-labs.co
Měli byste získat výsledek, jak je uvedeno níže.
Krok 2 – Změna výchozího portu Apache
V tomto tutoriálu budeme jako backendový server používat Apache a nepoběží pod standardním HTTP portem 80. Webový server Apache poběží na portu 8080 jako backend a standardní HTTP port 80 bude používat ' Lak'.
Chcete-li změnit výchozí port apache, musíme upravit konfiguraci apache 'ports.conf' a veškerou konfiguraci virtuálního hostitele v adresáři 'sites-available'.
Přejděte do konfiguračního adresáře Apache.
cd /etc/apache2
Nahraďte port '80' za '8080' v konfiguraci Apache 'ports.conf' a všechny soubory virtuálního hostitele v adresáři 'sites-available'. Můžeme to udělat spuštěním následujících příkazů sed.
sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*
Dále otestujte konfiguraci Apache a ujistěte se, že nedochází k chybě, poté restartujte službu Apache.
apachectl configtest
systemctl restart apache2
Nyní Apache běží pod HTTP portem '8080', zkontrolujte jej pomocí příkazu 'netstat', jak je ukázáno níže.
netstat -plntu
Ujistěte se, že máte výsledek jako níže.
Takže můžete vidět, že webový server Apache běží na portu '8080'.
Krok 3 – Instalace Varnish HTTP Accelerator
V tomto kroku budeme instalovat Varnish z úložiště Ubuntu. A pro tuto příručku budeme používat Varnish 5.2.
Nainstalujte lak pomocí následujícího příkazu apt.
apt install -y varnish
Po dokončení instalace spusťte Varnish a povolte jeho automatické spouštění při spouštění systému.
systemctl start varnish
systemctl enable varnish
Varnish byl nainstalován v systému Ubuntu 18.04.
Ve výchozím nastavení běží pod porty '6081' pro veřejnou adresu a '6082' pro adresu localhost. Zkontrolujte to pomocí příkazu netstat níže.
netstat -plntu
A získáte výchozí port pro lak.
Krok 4 – Konfigurace laku jako reverzního proxy pro Apache
V tomto kroku nakonfigurujeme lak na přední straně webového serveru Apache. Varnish bude běžet pod http portem 80 a každý požadavek od klientů bude zpracován jím, než bude odeslán na webový server Apache běžící na portu 8080.
– Konfigurace backendu
Přejděte do konfiguračního adresáře 'varnish' a zálohujte výchozí soubor 'default.vcl'.
cd /etc/varnish/
cp default.vcl default.vcl.aseli
Upravte konfiguraci laku 'default.vcl' pomocí editoru vim.
vim default.vcl
Definujte konfiguraci „backendu“ na řádku 16. Backend pro naše nastavení je Apache a běží na portu 8080. Konfigurace laku pro naše nastavení Apache by tedy měla být následující:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Uložte a ukončete.
- Spuštění laku na portu 80
Dále musíme změnit výchozí porty laku. Výchozí porty pro lak jsou '6081' a '6082' a my potřebujeme změnit port na HTTP port 80 (pouze pro veřejnou adresu).
Upravte konfiguraci parametru laku v adresáři '/etc/default'.
cd /etc/default/
vim varnish
Upravte řádek „DAEMON_OPTS“, změňte výchozí port „6081“ pro veřejnou adresu na standardní port HTTP „80“, jak je uvedeno níže.
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Uložte a ukončete.
Dále musíme upravit servisní soubor laku 'varnish.service'. Přejděte do adresáře '/lib/systemd/system' a upravte soubor služby pomocí vim.
cd /lib/systemd/system/
vim varnish.service
Na řádku 'ExecStart' změňte příkaz spuštění laku, jak je uvedeno níže.
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
Uložte a ukončete.
Znovu načtěte konfiguraci služby systemd a poté restartujte lak.
systemctl daemon-reload
systemctl restart varnish
Nyní zkontrolujte lak a ujistěte se, že běží na portu HTTP 80.
netstat -plntu
Varnish tedy nyní běží pod HTTP portem 80 jako front-end pro webový server Apache, který je na portu 8080.
Krok 5 – Testování
Otestujte pomocí příkazu curl.
curl -I hakase-labs.co
Ujistěte se, že jste získali záhlaví HTTP, jak je znázorněno níže.
Při kontrole z webového prohlížeče je adresa URL mého testovacího serveru http://hakase-labs.co/. Zde vyberte adresu URL svého serveru.
A stále dostáváme obsah Apache.
Zkontrolujte protokol laku pomocí příkazu 'varnishncsa'.
varnishncsa
A získáme log právě z Apache access log.
Instalace a konfigurace laku pro webový server Apache byla dokončena.