Skip to content

WCFV

Analytics Blog

Menu
Menu

Configurez Varnish Cache Et Accélérez le Temps de chargement de votre Application 10 fois Plus rapidement

Posted on mars 2, 2022 by admin
 Varnish cache

Indépendamment de la taille et de la complexité de votre application, les utilisateurs préféreront rester ou revenir s’ils apprécient la vitesse à laquelle le contenu dynamique de votre application est rendu. L’amélioration des performances, la livraison rapide des pages et la réponse rapide du serveur sont également quelques-uns des rares facteurs qui accrochent les utilisateurs à votre application.

Ceux-ci et bien d’autres sont les facteurs contributifs de toute application Web réussie et populaire. Bien qu’il existe plusieurs techniques et stratégies disponibles pour accélérer les applications Web modernes, la mise en cache s’est avérée beaucoup plus précieuse.

Chaque demande adressée à une page particulière de votre site Web communique directement et reçoit des réponses de votre serveur. Ainsi, chaque fois qu’un utilisateur visite une page particulière, votre front-end effectue un appel HTTP pour récupérer le contenu approprié et votre serveur est tenu de répondre en conséquence.

Pour une application Web à petite échelle, ce n’est peut-être pas trop, mais une fois que votre application commence à évoluer, un grand nombre de demandes adressées à votre serveur Web commenceront progressivement à devenir trop lourdes à gérer. Ceci est souvent considéré comme une surcharge inutile.

Servir une page web prend beaucoup de ressources – surtout lorsqu’elle est générée dynamiquement comme celles créées via PHP. Par conséquent, dans ce tutoriel Varnish cache, je vais vous montrer comment augmenter la vitesse de votre application PHP sans nécessairement mettre à l’échelle verticalement ou horizontalement mais en utilisant Varnish.

Qu’est-ce que le cache Varnish et Pourquoi l’utiliser

Le cache Varnish est un accélérateur d’applications Web également connu sous le nom de proxy inverse HTTP de mise en cache. Il agit plus comme un intermédiaire entre votre client (c’est-à-dire l’utilisateur) et votre serveur Web. Cela signifie qu’au lieu de votre serveur web pour écouter directement les demandes de contenus spécifiques tout le temps, Varnish en assumera la responsabilité.

Une fois qu’une requête arrive pour la première fois, Varnish en PHP la dirigera vers le serveur Web pour une réponse appropriée. Cette réponse sera mise en cache par Varnish en PHP avant d’être envoyée au client. Fait intéressant, toute demande ultérieure pour un tel contenu sera simplement servie directement à partir du cache Varnish au lieu d’aller directement sur le serveur Web. Avec cela en place, votre application Web sera en mesure de gérer un grand nombre de demandes simultanées de plusieurs utilisateurs car le serveur ne sera même pas démarré. Cela se traduira par une augmentation magique des performances de votre application.

PHP Varnish utilise VCL (Varnish Configuration Language) pour vous permettre de modifier son comportement en ajoutant une logique pour manipuler les requêtes. Vous pouvez manipuler les réponses provenant du serveur Web, supprimer les cookies ou ajouter des en-têtes à la réponse.

Flux de travail de vernis

Get/some-web-page(client)- → Cache-→ Get/some-web-page (Serveur)→→ Cache-→ Retour au client.

 flux de travail du cache de vernis

 flux de travail du cache de vernis

Supposons que la première demande à la page prenne environ 200 ms.

Maintenant, une fois le contenu de cette page complètement mis en cache, le flux change entièrement et la demande du client vers cette même page ne touchera plus directement le serveur, car Varnish l’a déjà mis en cache plus tôt. Jetez un œil à l’illustration ci-dessous :

GET/some-web-page(client) – → Cache (HIT). — > Et retour au client

Une requête ultérieure à la page 10ms…..

Génial non?

Par conséquent, l’idée est de réduire autant que possible le nombre de requêtes envoyées à votre serveur backend. Cela augmentera en retour la vitesse de rendu des pages pour votre application Web.

Mise en route de la configuration de Varnish

Maintenant, comme vous avez procédé à l’introduction de base de Varnish et de ses capacités de mise en cache, il est temps de configurer Varnish et de l’utiliser pour une application PHP. Commencer avec le vernis est facile. Pour configurer correctement, nous allons utiliser et extraire une application existante de GitHub et la déployer sur le serveur DigitalOcean. Après cela, nous allons configurer le vernis.

Ensuite, configurez un compte gratuit sur DigitalOcean, et une fois cela terminé, cliquez sur le bouton « Créer », et dans la liste déroulante, sélectionnez « Gouttelettes » pour créer une nouvelle gouttelette.

Faites défiler vers le bas pour sélectionner Ubuntu 16.04 et notez que vous devez sélectionner la taille d’une gouttelette, la plus petite taille devrait suffire pour ce tutoriel de cache de vernis.

Faites défiler vers le bas pour ajouter une clé SSH, si vous en avez une. Cela vous aidera à vous connecter facilement au serveur ultérieurement, sinon vous devrez vérifier dans votre boîte de réception le mot de passe par défaut de votre droplet. Ensuite, ajoutez un nom d’hôte. J’ai nommé le mien vernis-démo. Maintenant, cliquez sur Créer pour commencer à créer la gouttelette.

Une fois le processus terminé, vous verrez la nouvelle gouttelette dans la liste des gouttelettes. Allez-y et ajoutez SSH dans votre gouttelette en utilisant l’adresse IP.

Préparez-Vous à la Mise À Jour de l’Ebook Core Web Vitals

pour Accélérer Votre Site Web Avant De Commencer À Perdre du Trafic.

Merci

Votre liste est en route vers Votre boîte de réception.

Installer le serveur web Nginx

Vous pouvez maintenant mettre à jour la liste des paquets et installer Nginx. Exécutez la commande suivante pour effectuer cela:

sudo apt updatesudo apt install -y nginx
  • Remarque: – l’indicateur y est de répondre avec une réponse par défaut à toute question posée lors de l’installation

Sur Ubuntu 16.04, Nginx est préconfiguré pour commencer à fonctionner lors de l’installation, donc une fois l’installation terminée, vous pouvez visiter l’adresse IP de votre gouttelette dans le navigateur:

http://server_domain_or_ip

Extraire la démo du GitHub

Je vais utiliser Git pour extraire l’exemple de projet de GitHub, il est préinstallé avec Ubuntu 16.04. Pour vérifier s’il est déjà installé sur votre serveur ou non, utilisez la commande ci-dessous:

git -v

Si vous recevez un message indiquant que Git n’est pas installé par défaut, vous devrez exécuter la commande suivante pour l’installer:

apt install -y git

Ensuite, vous devez utiliser le même dossier qui abrite la page par défaut du serveur Web Nginx, alors accédez au répertoire public:

cd/var/www

Supprimez le dossier html, recréez-le et déplacez-le dedans:

rm -rf htmlmkdir htmlcd html

Maintenant, clonez le référentiel

// Install projectgit clone https://github.com/yemiwebby/varnish-demo.git

Avec cela en place, vous avez maintenant un exemple de projet installé sur votre serveur. Mais il ne sera pas accessible pour l’instant, et c’est parce que nous n’avons pas installé PHP. Faisons ça.

Vous pourriez aussi aimer: Utiliser Memcached avec PHP

Installer PHP et configurer Nginx pour utiliser le processeur PHP

Nginx ne contient pas de traitement PHP natif comme certains autres serveurs Web. Nous allons installer un logiciel nommé php-fpm et demander à Nginx de lui transmettre toutes les requêtes PHP. Revenez au répertoire racine de votre serveur web et exécutez la commande suivante pour installer le module PHP-FPM:

$ cd ~$ sudo apt install php-fpm

Une fois le processus d’installation terminé, vous pouvez maintenant configurer Nginx pour qu’il utilise le processeur PHP installé. Ouvrez le fichier de configuration de bloc de serveur Nginx par défaut avec:

sudo nano /etc/nginx/sites-available/default

et remplacer son contenu par:

server { listen 80 default_server; listen :80 default_server; root /var/www/html; index index.php; server_name YOUR_SERVER_IP; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; }}

Lorsque vous avez terminé, rechargez Nginx pour apporter les modifications nécessaires:

$ sudo systemctl reload nginx

Maintenant, vous pouvez visiter la page de votre serveur Web préféré en utilisant l’adresse IP de votre droplet:

http://ip_address

Activation de la mise en cache à l’aide de Varnish

Si vous inspectez la page pour afficher les en-têtes HTTP à partir de l’onglet réseau, vous ne remarquerez aucune trace de Varnish car il n’est pas installé ou configuré pour gérer une demande. Changeons cela en installant Varnish sur notre serveur Web. Pour ce faire, tapez la commande suivante:

$ sudo apt install -y varnish

Cela passera par le processus d’installation d’un cache de vernis sur votre serveur. Une fois l’installation terminée, démarrez et activez le vernis avec:

systemctl start varnishsystemctl enable varnish

Varnish écoute par défaut sur le port 6081. Pour le confirmer, ouvrez votre navigateur et visitez à nouveau votre adresse IP droplet, mais cette fois, assurez-vous d’ajouter: 6081 comme indiqué ci-dessous:

Nginx, qui est le serveur Web responsable du chargement du contenu de votre application Web, s’exécute sur le port 80. Pour permettre à Varnish de prendre la responsabilité de la mise en cache et du rendu de la page le plus rapidement possible, il doit se placer entre votre client d’application Web et le serveur. Cela garantira que toute demande à votre serveur qui sera principalement sur le port 80 sera interceptée par Varnish, et selon qu’il s’agit d’un échec ou d’un échec du cache, Varnish agira en conséquence et renverra la réponse appropriée.

Je vais changer le processus en configurant Varnish sur le port 80 et Nginx sur le port 8080. Pour ce faire, modifiez à nouveau le fichier de configuration Nginx de votre site. Dans notre cas, ce fichier est /etc/nginx/sites-available/default. Changer le 80 en 8080:

server { listen 8080 default_server; listen :8080 default_server; root /var/www/html;}

Le port 80 sera désormais libre d’utilisation pour le vernis. Rechargez votre configuration Nginx avec:

sudo systemctl reload nginx

et vérifiez la disponibilité de votre site web en utilisant votre adresse IP avec le port 8080 ajouté :

Lorsque Varnish a été installé précédemment, deux fichiers de configuration ont également été créés sur le serveur. Ils sont:

  • / etc/default/varnish
  • /etc/varnish/default.vcl

J’utiliserai ces fichiers pour des configurations telles que l’ouverture d’un port pour Varnish et la manipulation des requêtes. Maintenant, ouvrez ce fichier /etc/default/varnish:

sudo nano /etc/default/varnish

# Ecoute sur le port 6081, administration sur localhost:6082, et transférer à

# un serveur de contenu sélectionné par le fichier vcl, en fonction de la requête.

DAEMON_OPTS= »-a :6081 \

– T hôte local:6082 \

– f/etc/varnish/par défaut.vcl\

-S/etc/varnish/secret\

-s malloc, 256m »

Recherchez la ligne ci-dessus et remplacez -a:6081 par -a:80.

Ensuite, ouvrez le fichier /etc/varnish/default.vcl:

sudo nano /etc/varnish/default.vcl

et vérifiez que le backend par défaut est défini sur le port 8080, car c’est là que Nginx sert à partir de maintenant. Recherchez la ligne ci-dessous et assurez-vous que le.le port est 8080.

# Définition du backend par défaut. Définissez cette option pour pointer vers votre serveur de contenu.

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

La prochaine chose est de copier le vernis.fichier de service dans notre répertoire systemd. Cela permettra à systemd de démarrer Varnish sur le port 80. Exécutez la commande ci-dessous:

$ sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/

Cela copiera le fichier de service Varnish.

Ensuite, ouvrez-le:

$ sudo nano /etc/systemd/system/varnish.service

et cherchez la ligne ExecStart:

Description=Varnish HTTP acceleratorDocumentation=https://www.varnish-cache.org/docs/4.1/ man:varnishdType=simpleLimitNOFILE=131072LimitMEMLOCK=82000ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.v$ExecReload=/usr/share/varnish/reload-vclProtectSystem=fullProtectHome=truePrivateTmp=truePrivateDevices=trueWantedBy=multi-user.target//ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

Changez maintenant le -F-a:6081 en -F-a:80. Enregistrez et quittez le fichier.

Si vous vérifiez les statistiques du réseau à l’aide de la commande netstat:

:~# netstat -plntu

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:6081 0.0.0.0:* LISTEN 13257/varnishd

tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 13257/varnishd

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2440/nginx -g daemo

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1648/sshd

tcp6 0 0 :::6081 :::* LISTEN 13257/varnishd

tcp6 0 0 :::8080 :::* LISTEN 2440/nginx -g daemo

tcp6 0 0 :::22 :::* LISTEN 1648/sshd

Vous remarquerez que le cache Varnish est toujours en cours d’exécution sur le port 6081. Changez cela en redémarrant Varnish:

systemctl daemon-reloadsystemctl restart varnish

et redémarrez également Nginx.

sudo service nginx restart

En ce moment, si vous visitez l’adresse IP de votre page Web, vous remarquerez que le site fonctionne toujours parfaitement, mais l’inspection de l’en-tête HTTP indiquera que Varnish est installé et en cours d’exécution.

Vous Pourriez aussi Aimer: Intégrez PHP Opcache & Faites Gagner votre Application Avec des Performances

Un aperçu de Varnish interne

Varnish déclenche quelques routines lors de la fin du traitement du contenu de mise en cache de votre application web. Jetons un coup d’œil à certaines des routines les plus importantes et à ce que chacune fait pour s’assurer que les contenus sont livrés à la vitesse de la lumière, ce qui améliorera les performances de votre application Web:

  • sub vcl_recv {} : C’est la première ligne que Varnish atteindra au moment où votre client acceptera une demande.
  • sub vcl_backend_response {}: Ce rappel est appelé après la réponse et a été récupéré du serveur principal. Vous pouvez également apporter des modifications à la réponse ici dans ce bloc.
  • sub vcl_backend_fetch {} :
  • sub vcl_deliver {} : C’est la dernière routine que VCL frappera avant d’envoyer une réponse au client. Ici, vous pouvez facilement faire des nettoyages, comme enlever tout ce que vous ne voulez pas que le client voit et ainsi de suite.

Q: Comment effacer le cache de vernis?

A: Vous pouvez purger tout le cache Varnish de la ligne de commande à l’aide de la commande ban :
varnishadm « ban.URL . »# Correspond à toutes les URL
Vous pouvez également interdire des caches particuliers en décrivant le nom d’hôte :
varnishadm  » ban req.http.hôte == xxx.com  »

Q : Comment désactiver le cache de vernis ?

R: Vous pouvez facilement désactiver le vernis de votre site Web en modifiant le .fichier htaccess avec le code suivant:
En-tête ajoutez « Cache-Control » « no-cache »
Cela désactivera temporairement le vernis de votre site Web. Vous pouvez ensuite activer Varnish en supprimant le code suivant.

Q: Comment purger le cache de vernis avec CLI?

R : Vous pouvez effacer ou purger le cache de vernis en redémarrant simplement le service de vernis. Cela va purger tout le cache de Vernis car il est stocké en mémoire par défaut :
/etc/varnish restart
Ou
service Varnish restart

Q : Comment vérifier si le cache de vernis fonctionne ou non ?

R : Pour vérifier si votre service Varnish fonctionne correctement ou non, utilisez l’en-tête X-Varnish qui vous indique l’état actif/non actif du service. Pour voir plus en détail s’il frappe le cache, utilisez l’en-tête X-Cache pour obtenir une analyse complète des caches.

Q: Cache de vernis vs Memcached: Lequel est le meilleur?

A: Les deux vernis & Memcached sont utiles en particulier dans les domaines de mise en cache, cependant, il existe quelques différences entre les deux.
Vous pouvez utiliser Memcached comme backend distribué en mémoire pour la mise en cache des actifs d’applications.
Tandis que Varnish est utilisé comme proxy inverse pour mettre en cache les requêtes HTTP de l’application en externe.
Memcached peut être qualifié de système de mise en cache à usage général car il met en cache les résultats de la base de données et nécessite peu de modifications dans la méthode GET.
Alors que Varnish fonctionne derrière le serveur Web, met en cache les pages Web et ne nécessite pas de modifications de code.

Derniers mots

Dans ce post, j’ai à peine gratté la surface de ce que vous pouvez faire avec du vernis. Il est si puissant que vous pouvez en faire beaucoup plus. En plus de pouvoir mettre en cache le contenu de votre application Web et gérer les requêtes, Varnish cache peut également être utilisé comme équilibreur de charge et bien plus encore.

Consultez la documentation officielle ici pour en savoir plus sur Varnish et d’autres configurations impressionnantes qui peuvent être effectuées en l’utilisant. N’hésitez pas à laisser un commentaire, une question ou une suggestion dans la section commentaire ci-dessous.

Partagez votre opinion dans la section commentaire. COMMENTEZ MAINTENANT

Partagez Cet Article

Avis client à

 » Cloudways hosting offre l’un des meilleurs services à la clientèle et une vitesse d’hébergement  »

Sanjit C

Olususi k Oluyemi

Un passionné de technologie, un passionné de programmation et un accro au développement Web qui aime embrasser les nouvelles technologies.

Connectez-vous sur: Forum de la communauté Twitter

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles récents

  • Or Non Métallique et Peinture Patience
  • Des moyens faciles de faire des Cake Pops sans moule
  • Guide de la Culture du Palmier à Huile (Huile de Palme)
  • Mot de passe iPod Nano oublié
  • Vivre avec l’anorexie Mentale
  • Google SketchUp Pro 2022 Crack 21.0.339
  • Vibrations excessives du Moteur de Moto – Causes et solutions
  • Comment ouvrir un fichier stp dans autocad?
  • Masque Dia de los Muertos
  • Création d’une Lunette Peyotl
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Archives

  • mars 2022
  • février 2022
  • janvier 2022
  • décembre 2021
  • novembre 2021
  • octobre 2021
  • septembre 2021

Méta

  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR
© 2022 WCFV | Powered by Superbs Personal Blog theme