GNU/Linux >> Tutoriels Linux >  >> Cent OS

Configurer Magento 2 pour utiliser Varnish sur CentOS 7

La vitesse de la page ou le temps de chargement est crucial pour le succès de votre boutique en ligne. Le temps de chargement est le temps total nécessaire au chargement du contenu d'une page spécifique. Plus le temps de chargement est long, plus le taux de conversion est faible. C'est également l'un des facteurs les plus importants pris en compte par Google pour déterminer le classement des moteurs de recherche.

Dans le premier post, nous avons installé Magento 2 sur notre machine CentOS 7. Dans le deuxième article de cette série, nous aborderons l'installation et la configuration de Varnish pour rendre notre boutique Magento ultra rapide.

Prérequis #

Assurez-vous d'avoir bien suivi les instructions du premier post et d'avoir EPEL dépôt activé.

Comment ça marche #

Varnish ne prend pas en charge SSL, nous devons donc utiliser un autre service en tant que proxy de terminaison SSL, dans notre cas, ce sera Nginx.

Lorsqu'un visiteur ouvre votre site Web via HTTPS sur le port 443 la demande sera traitée par Nginx qui fonctionne comme un proxy et transmet la demande à Varnish (sur le port 80). Varnish vérifie si la requête est mise en cache ou non. S'il est mis en cache, Varnish renverra les données mises en cache à Nginx sans demande à l'application Magento. Si la requête n'est pas mise en cache, Varnish transmettra la requête à Nginx sur le port 8080 qui extraira les données de Magento et Varnish mettra en cache la réponse.

Si un visiteur ouvre votre site Web sans SSL sur le port 80 alors il sera redirigé vers le HTTPS sur le port 443 URL par vernis.

Configuration de Nginx #

Nous devons modifier le bloc de serveur Nginx que nous avons créé dans le premier message pour gérer la terminaison SSL/TLS et comme back-end pour 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;
    }
}

Nous devons également supprimer le bloc de serveur Nginx par défaut du nginx.conf dossier. Commentez ou supprimez les lignes suivantes :

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

Rechargez le service Nginx pour que les modifications prennent effet :

sudo systemctl reload nginx

Installation et configuration de Varnish #

Varnish est un accélérateur HTTP rapide à proxy inverse qui se placera devant notre serveur Web et sera utilisé comme Full Page Cache solution pour notre installation Magento.

Installez Varnish via yum avec la commande suivante :

sudo yum install varnish

Pour configurer Magento pour utiliser l'exécution de Varnish :

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

Ensuite, nous devons générer un fichier de configuration Varnish :

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

La commande ci-dessus doit être exécutée en tant que root ou utilisateur avec les privilèges sudo et elle créera un fichier /etc/varnish/default.vcl en utilisant les valeurs par défaut qui sont localhost comme hôte principal et port 8080 comme port principal.

La configuration par défaut est fournie avec une URL erronée pour le fichier de vérification de l'état. Ouvrez le default.vcl fichier et supprimez le /pub partie de la ligne surlignée en jaune :

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

Par défaut, Varnish écoute sur le port 6081 , et nous devons le changer en 80 :

/etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80

Une fois que vous avez terminé les modifications, démarrez et activez le service Varnish :

sudo systemctl enable varnishsudo systemctl start varnish

Vous pouvez utiliser le varnishlog outil pour afficher les requêtes Web en temps réel et pour déboguer Varnish.


Cent OS
  1. Configurer VNC sur CentOS 6 / RHEL 6

  2. Comment utiliser le sel sur Centos 8

  3. Configurer les hôtes virtuels Apache sur CentOS 7

  4. Comment installer le cache de vernis sur CentOS

  5. Comment configurer vsftpd pour utiliser SSL/TLS (FTPS) sur CentOS/Ubuntu

Comment configurer OpenNMS sur CentOS 7

Comment configurer vTiger CRM sur CentOS 7

Comment configurer l'adresse IP dans CentOS 7 / RHEL 7 et CentOS 6 / RHEL 6

Comment installer Magento sur CentOS 6

Comment installer et configurer GlusterFS sur CentOS 7/CentOS 8

Comment installer Varnish sur CentOS 7