GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat a nastavit Varnish Cache 6 s Nginx na CentOS 8

Varnish Cache je bezplatný a open source reverzní proxy HTTP akcelerátor pro webové stránky a rozhraní API. Lze jej nainstalovat jako reverzní proxy před libovolný webový server běžící na HTTP. Nachází se mezi webovým serverem a prohlížečem a ukládá webové stránky, soubory cookie a další data do paměti. Tato mezipaměť bude sloužit pro všechny budoucí požadavky na přesně podobný obsah. To zvýší zatížení webové aplikace a zlepší výkon webového serveru více než 300krát.

V tomto tutoriálu nastavíme server Nginx jako backend server a nakonfigurujeme jej tak, aby naslouchal na portu 8080, poté nakonfigurujeme mezipaměť Varnish, aby naslouchala na výchozím portu HTTP 80.

Předpoklady

  • Server se systémem CentOS 8.
  • Na serveru je nakonfigurováno heslo uživatele root.

Instalace a konfigurace webového serveru Nginx

Nejprve budete muset do svého systému nainstalovat webový server Nginx. Můžete jej nainstalovat pomocí následujícího příkazu:

dnf install nginx -y

Po instalaci spusťte službu Nginx a povolte její spuštění při restartu systému pomocí následujícího příkazu:

systemctl start nginx
systemctl enable nginx

Ve výchozím nastavení Nginx naslouchá na portu 80. Budete tedy muset nakonfigurovat Nginx tak, aby naslouchal na portu 80. Můžete jej nakonfigurovat úpravou výchozího konfiguračního souboru Nginx:

nano /etc/nginx/nginx.conf

Najděte následující řádky:

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

A nahraďte je následujícími řádky:

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

Po dokončení uložte a zavřete soubor. Poté restartujte službu Nginx, abyste použili změny:

systemctl restart nginx

V tomto okamžiku je webový server Nginx nainstalován a naslouchá na portu 8080. Můžete to zkontrolovat pomocí následujícího příkazu:

netstat -tpln | grep 8080

Měli byste získat následující výstup:

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      30367/nginx: master 
tcp6       0      0 :::8080                 :::*                    LISTEN      30367/nginx: master 

Instalovat mezipaměť laku

Ve výchozím nastavení je balíček Varnish dostupný ve výchozím úložišti CentOS 8. Můžete jej nainstalovat pouhým spuštěním následujícího příkazu:

dnf module install varnish

Po instalaci spusťte službu Varnish pomocí následujícího příkazu:

systemctl start varnish

Nainstalovanou verzi mezipaměti Varnish můžete také ověřit pomocí následujícího příkazu:

varnishd -V

Měli byste vidět následující výstup:

varnishd (varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2018 Varnish Software AS

Konfigurovat lak pro Nginx

Dále budete muset nakonfigurovat lak tak, aby běžel na portu 80 pro příjem požadavků HTTP od klientů. Můžete jej nakonfigurovat úpravou výchozího konfiguračního souboru Varnish:

systemctl edit --full varnish

Najděte následující řádek:

ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m

A nahraďte jej následujícím řádkem:

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Po dokončení uložte a zavřete soubor.

Dále budete muset definovat backend server pro Varnish. Můžete to udělat úpravou hlavního konfiguračního souboru Varnish /etc/varnish/default.vcl:

nano /etc/varnish/default.vcl

Změňte následující řádky:

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

Po dokončení uložte a zavřete soubor. Poté znovu načtěte démona systemd pomocí následujícího příkazu:

systemctl daemon-reload

Dále restartujte službu Varnish a povolte její spuštění při restartu systému pomocí následujícího příkazu:

systemctl restart varnish
systemcl enable varnish

Stav laku můžete také ověřit pomocí následujícího příkazu:

systemctl status varnish

Měli byste získat následující výstup:

? varnish.service - Varnish Cache, a high-performance HTTP accelerator
   Loaded: loaded (/etc/systemd/system/varnish.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-08-29 09:36:58 EDT; 12s ago
  Process: 30421 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS)
 Main PID: 30424 (varnishd)
    Tasks: 217
   Memory: 91.8M
   CGroup: /system.slice/varnish.service
           ??30424 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
           ??30434 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Aug 29 09:36:57 centos8 systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Version: varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Aug 29 09:36:58 centos8 varnishd[30424]: Version: varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91
Aug 29 09:36:58 centos8 varnishd[30424]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Child (30434) Started
Aug 29 09:36:58 centos8 varnishd[30424]: Child (30434) Started
Aug 29 09:36:58 centos8 varnishd[30424]: Child (30434) said Child starts
Aug 29 09:36:58 centos8 systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.

Nyní můžete ověřit naslouchací port Nginx a Varnish pomocí následujícího příkazu:

netstat -tpln | grep 80

Měli byste vidět následující výstup:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30424/varnishd      
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      30367/nginx: master 
tcp6       0      0 :::80                   :::*                    LISTEN      30424/varnishd      
tcp6       0      0 :::8080                 :::*                    LISTEN      30367/nginx: master 

Konfigurovat SELinux a bránu firewall

Ve výchozím nastavení je SELinux povolen v CentOS 8. Takže budete muset nakonfigurovat SELinux pro Varnish. Můžete jej nakonfigurovat pomocí následujícího příkazu:

setsebool -P httpd_can_network_connect 1

Dále budete muset povolit port 80 přes firewall. Můžete to udělat pomocí následujícího příkazu:

firewall-cmd --permanent --zone public --add-port 80/tcp
firewall-cmd --reload

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Testovací mezipaměť laku

V tomto okamžiku je mezipaměť Varnish nainstalována a nakonfigurována pomocí webového serveru Nginx. Nyní je čas otestovat, zda mezipaměť Varnish funguje nebo ne.

Můžete to otestovat pomocí příkazu curl, jak je znázorněno níže:

curl -I http://localhost

Měli byste vidět následující výstup:

																																																																																																																																																																																																																																																																																																																																																																		
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sat, 29 Aug 2020 13:53:44 GMT
Content-Type: text/html; charset=UTF-8
X-Powered-By: PHP/7.2.24
X-Varnish: 32800
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Accept-Ranges: bytes
Connection: keep-alive

Závěr

Gratulujeme! úspěšně jste nainstalovali Varnish Cache s Nginx na CentOS 8. Doufám, že můžete také snadno nakonfigurovat Varnish cache s webovým serverem Apache. Neváhejte se mě zeptat, pokud máte nějaké otázky.


Cent OS
  1. Jak nainstalovat mezipaměť laku na CentOS

  2. Jak nainstalovat Varnish Cache 4 na CentOS 7

  3. Jak nainstalovat Varnish a phpMyAdmin na CentOS 7 VPS s Nginx, MariaDB a PHP-FPM

  1. Jak nainstalovat Nextcloud s Nginx a PHP 7.3 na CentOS 8

  2. Jak nainstalovat ownCloud 9.1 s Nginx a MariaDB na CentOS 7

  3. Jak nainstalovat WordPress s HHVM a Nginx na CentOS 7

  1. Jak nainstalovat Nextcloud s Nginx a PHP7-FPM na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Askbot s Nginx na CentOS 7

  3. Jak nainstalovat Laravel 5.x s Nginx a PHP-FPM 7.1 na CentOS 7