GNU/Linux >> Linux Esercitazione >  >> Cent OS

Configura Magento 2 per usare Varnish su CentOS 7

La velocità della pagina o il tempo di caricamento sono fondamentali per il successo del tuo negozio online. Il tempo di caricamento è il tempo totale necessario per caricare il contenuto di una pagina specifica. Maggiore è il tempo di caricamento, minore è il tasso di conversione. È anche uno dei fattori più importanti che Google considera per determinare il posizionamento nei motori di ricerca.

Nel primo post, abbiamo installato Magento 2 sulla nostra macchina CentOS 7. Nel secondo post di questa serie, tratteremo l'installazione e la configurazione di Varnish per rendere il nostro negozio Magento super veloce.

Prerequisiti #

Assicurati di aver seguito le istruzioni del primo post e di avere EPEL repository abilitato.

Come funziona #

Varnish non supporta SSL, quindi dobbiamo utilizzare un altro servizio come proxy di terminazione SSL, nel nostro caso sarà Nginx.

Quando un visitatore apre il tuo sito web su HTTPS sulla porta 443 la richiesta sarà gestita da Nginx che funge da proxy e passa la richiesta a Varnish (sulla porta 80). Varnish controlla se la richiesta è memorizzata nella cache o meno. Se è memorizzato nella cache, Varnish restituirà i dati memorizzati nella cache a Nginx senza una richiesta all'applicazione Magento. Se la richiesta non è memorizzata nella cache, Varnish passerà la richiesta a Nginx sulla porta 8080 che estrarrà i dati da Magento e Varnish memorizzerà nella cache la risposta.

Se un visitatore apre il tuo sito web senza SSL sulla porta 80 quindi verrà reindirizzato al HTTPS sulla porta 443 URL per vernice.

Configurazione di Nginx #

Dobbiamo modificare il blocco del server Nginx che abbiamo creato nel primo post per gestire la terminazione SSL/TLS e come back-end per 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;
    }
}

Abbiamo anche bisogno di rimuovere il blocco del server Nginx predefinito da nginx.conf file. Commenta o elimina le seguenti righe:

/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 {
#     }
# }
...

Ricarica il servizio Nginx per rendere effettive le modifiche:

sudo systemctl reload nginx

Installazione e configurazione della vernice #

Varnish è un veloce acceleratore HTTP proxy inverso che si troverà davanti al nostro server web e verrà utilizzato come Full Page Cache soluzione per la nostra installazione Magento.

Installa Varnish tramite yum con il seguente comando:

sudo yum install varnish

Per configurare Magento per l'utilizzo di Varnish esegui:

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

Successivamente, dobbiamo generare un file di configurazione di Varnish:

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

Il comando sopra deve essere eseguito come root o utente con privilegi sudo e creerà un file /etc/varnish/default.vcl utilizzando i valori predefiniti che sono localhost come host back-end e porta 8080 come porta di back-end.

La configurazione predefinita include un URL errato per il file di controllo dello stato. Apri il default.vcl file e rimuovere il /pub parte dalla linea evidenziata in giallo:

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

Per impostazione predefinita, Varnish è in ascolto sulla porta 6081 e dobbiamo cambiarlo in 80 :

/etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80

Una volta terminate le modifiche, avvia e abilita il servizio Varnish:

sudo systemctl enable varnishsudo systemctl start varnish

Puoi usare il varnishlog strumento per visualizzare le richieste web in tempo reale e per il debug di Varnish.


Cent OS
  1. Configura VNC su CentOS 6 / RHEL 6

  2. Come usare il sale su Centos 8

  3. Configura gli host virtuali Apache su CentOS 7

  4. Come installare Varnish Cache su CentOS

  5. Come configurare vsftpd per utilizzare SSL/TLS (FTPS) su CentOS/Ubuntu

Come configurare OpenNMS su CentOS 7

Come configurare vTiger CRM su CentOS 7

Come configurare l'indirizzo IP in CentOS 7/RHEL 7 e CentOS 6/RHEL 6

Come installare Magento su CentOS 6

Come installare e configurare GlusterFS su CentOS 7/CentOS 8

Come installare la vernice su CentOS 7