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

Nakonfigurujte Magento 2 pro použití Varnish na CentOS 7

Rychlost stránky nebo doba načítání je rozhodující pro úspěch vašeho internetového obchodu. Doba načítání je celková doba, kterou trvá načtení obsahu na konkrétní stránce. Čím delší je doba načítání, tím nižší je konverzní poměr. Je to také jeden z nejdůležitějších faktorů, které Google zvažuje při určování hodnocení ve vyhledávačích.

V prvním příspěvku jsme nainstalovali Magento 2 na náš stroj CentOS 7. Ve druhém příspěvku této série se budeme zabývat instalací a konfigurací laku, aby byl náš obchod Magento super rychlý.

Předpoklady #

Ujistěte se, že jste postupovali podle pokynů z prvního stojanu EPEL úložiště povoleno.

Jak to funguje #

Varnish nepodporuje SSL, takže musíme použít jinou službu jako SSL Termination Proxy, v našem případě to bude Nginx.

Když návštěvník otevře váš web přes HTTPS na portu 443 požadavek bude zpracován Nginx, který funguje jako proxy a předá požadavek do Varnish (na portu 80). Varnish zkontroluje, zda je požadavek uložen v mezipaměti nebo ne. Pokud je uložena v mezipaměti, Varnish vrátí data uložená v mezipaměti do Nginx bez požadavku na aplikaci Magento. Pokud požadavek není v mezipaměti, Varnish předá požadavek Nginx na portu 8080 který vytáhne data z Magento a Varnish uloží odpověď do mezipaměti.

Pokud návštěvník otevře váš web bez SSL na portu 80 poté bude přesměrován na HTTPS na portu 443 URL by Varnish.

Konfigurace Nginx #

Potřebujeme upravit blok serveru Nginx, který jsme vytvořili v prvním příspěvku, aby zvládl ukončení SSL/TLS a jako back-end pro Varnish.

/etc/nginx/conf.d/example.com.conf
upstream fastcgi_backend {
  server   unix:/run/php-fpm/magento.sock;
}

server {
    listen 127.0.0.1:8080;
    server_name example.com www.example.com;

    set $MAGE_ROOT /opt/magento/public_html;
    set $MAGE_MODE developer; # or production

    include snippets/letsencrypt.conf;
    include /opt/magento/public_html/nginx.conf.sample;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    location / {
        proxy_pass http://127.0.0.1;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Port 443;
    }
}

Musíme také odstranit výchozí blok serveru Nginx z nginx.conf soubor. Zakomentujte nebo odstraňte následující řádky:

/etc/nginx/nginx.conf
...
# server {
#     listen       80 default_server;
#     listen       [::]:80 default_server;
#     server_name  _;
#     root         /usr/share/nginx/html;
#
#     # Load configuration files for the default server block.
#     include /etc/nginx/default.d/*.conf;
#
#     location / {
#     }
#
#     error_page 404 /404.html;
#        location = /40x.html {
#     }
#
#     error_page 500 502 503 504 /50x.html;
#         location = /50x.html {
#     }
# }
...

Znovu načtěte službu Nginx, aby se změny projevily:

sudo systemctl reload nginx

Instalace a konfigurace laku #

Varnish je rychlý reverzní proxy HTTP akcelerátor, který bude umístěn před naším webovým serverem a bude použit jako Full Page Cache řešení pro naši instalaci Magento.

Nainstalujte Varnish přes yum pomocí následujícího příkazu:

sudo yum install varnish

Chcete-li nakonfigurovat Magento pro použití Varnish, spusťte:

php /opt/magento/public_html/bin/magento config:set --scope=default --scope-code=0 system/full_page_cache/caching_application 2

Dále musíme vygenerovat konfigurační soubor Varnish:

sudo php /opt/magento/public_html/bin/magento varnish:vcl:generate > /etc/varnish/default.vcl

Výše uvedený příkaz je třeba spustit jako root nebo uživatel s právy sudo a vytvoří soubor /etc/varnish/default.vcl pomocí výchozích hodnot, kterými jsou localhost jako koncový hostitel a port 8080 jako back-end port.

Výchozí konfigurace je dodávána s nesprávnou adresou URL pro soubor kontroly stavu. Otevřete soubor default.vcl a odstraňte /pub část z řádku zvýrazněného žlutě:

/etc/varnish/default.vcl
...
.probe = {
     # .url = "/pub/health_check.php";
     .url = "/health_check.php";
     .timeout = 2s;
     .interval = 5s;
     .window = 10;
     .threshold = 5;
}
...

Ve výchozím nastavení Varnish naslouchá na portu 6081 a musíme jej změnit na 80 :

/etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80

Jakmile budete s úpravami hotovi, spusťte a povolte službu Lakování:

sudo systemctl enable varnishsudo systemctl start varnish

Můžete použít varnishlog nástroj pro zobrazení webových požadavků v reálném čase a pro ladění Varnish.


Cent OS
  1. Jak používat sůl na Centos 8

  2. Nakonfigurujte virtuální hostitele Apache na CentOS 7

  3. Jak nainstalovat mezipaměť laku na CentOS

  1. Nakonfigurujte VNC na CentOS 6 / RHEL 6

  2. Jak nakonfigurovat vsftpd pro použití SSL/TLS (FTPS) na CentOS/Ubuntu

  3. Jak nakonfigurovat OpenSSH na CentOS 7

  1. Nainstalujte Magento 2 na CentOS 7

  2. Jak nainstalovat Magento 2.1 na CentOS 7

  3. Jak nakonfigurovat PureFTPd pro použití relací TLS na CentOS 7