Écrit par Chris
13 octobre 2021
blog | cache | Cloud | Geek | infomaniak | informatique | internet | WordPress
À consulter en cas de problème d'affichage ou de mauvais fonctionnement du site.
Si vous rencontrez un problème sur le site ( problème d’affichage, boutons des réseaux sociaux qui ne s’affiches pas, la zone des commentaires ne s’affiche pas ou d’autres problèmes) c’est peut-être à cause d’une extension de votre navigateur. Certaines extensions peuvent provoquer ce genre de problème, en particulier les bloqueurs de pub.
Si vous rencontrez les problèmes cités ci-dessus ou d’autres problèmes, veuillez mettre le site en liste blanche dans les bloqueurs de pub que vous utilisez et vérifié que vous n’utilisez pas d’autres applications susceptibles de bloquer certaines fonctionnalités du site.
Retrouver tous mes articles sur Infomaniak

Un site internet plus rapide avec le cache
Bienvenue sur cet article qui sera consacré à l’installation de différents systèmes de cache sur votre serveur cloud d’Infomaniak pour un site WordPress. Pour suivre ce tuto, il vous faudra bien évidemment avoir un serveur cloud actif chez Infomaniak. On peut utiliser différents systèmes de cache pour optimiser son site web WordPress. Dans cet article nous allons surtout nous intéresser au cache objet pour Wordpress, ainsi qu’au système de reverse proxy Varnish.
Il est actuellement très simple d’installer différents systèmes de cache chez Infomaniak, mais nous verrons également comment paramétrer votre site WordPress pour que tous fonctionnent correctement. En paramétrant correctement ces systèmes de cache, vous pourrez considérablement accélérer votre site web aussi bien sur le back que sur le front de votre site WordPress. Je vais donc vous présenter Memcached, Redis, OPcache et Varnish.
Si vous envisagez une solution de mise en cache côté serveur, il est probable que vous ayez entendu parler de Redis ou de Memcached.
Les deux systèmes, Redis et Memcached sont:
- Des systèmes de stockage de données en mémoire à valeur-clé noSQL
- Open source
- Utilisé pour accélérer les applications
- Pris en charge par les principaux fournisseurs de services cloud
Alors, qu’est-ce qui les distingue ? C’est ce dont je vais vous parler dans cet article. Je vais vous expliquer comment ils gèrent le stockage de données, l’évolutivité et lequel fonctionne le mieux compte tenu de certains scénarios. Mais d’abord, commençons par les bases.
Redis VS Memcached
Memcached (Mem-Cache-D) ou Redis ? C’est une question qui revient presque toujours dans toute discussion sur les performances d’une application Web basée sur une base de données. Lorsque les performances doivent être améliorées, la mise en cache est souvent la première étape que nous prenons, et Memcached et Redis sont généralement les deux principaux candidats pour améliorer les performances.

Bien que les deux moteurs de cache partagent un certain nombre de similitudes, ils présentent également des différences importantes. Redis, le plus récent et le plus polyvalent des deux est presque toujours le meilleur choix, bien qu’il existe des tests de référence montrant que Redis est pire que Memcached dans certaines situations avec des volumes de données élevés.
Différences
Le premier sert à mettre en cache des données petites et statiques, telles que des fragments de code HTML. La gestion de la mémoire interne de Memcached, bien que pas aussi sophistiquée que Redis, est plus efficace, car Memcached consomme comparativement moins de ressources mémoires pour les métadonnées.
Cependant, nous voudrions presque toujours utiliser Redis. En utilisant Redis comme cache, nous gagnons beaucoup en possibilités, comme la possibilité d’affiner le contenu et la durabilité du cache.
Radis est meilleur dans presque tous les aspects de la gestion du cache. Redis utilise également des approches plus sophistiquées pour la gestion de la mémoire et la sélection des candidats à l’éviction.

Les deux systèmes de caches utilisent un mécanisme appelé éviction de données pour supprimer les anciennes données de la mémoire afin de faire de la place pour de nouvelles données. Le mécanisme d’expulsion des données de Memcached utilise un algorithme LRU (Least Récemment Used) et évince quelque peu arbitrairement les données dont la taille est similaire aux nouvelles données.
Redis, en revanche, permet un contrôle précis des expulsions grâce à un choix de six politiques d’expulsion différentes. Redis utilise également des approches plus sophistiquées pour la gestion de la mémoire et la sélection des candidats à l’éviction.

Lorsque vous décidez du cache à utiliser pour WordPress, vous devez voir vos besoins. Redis est flexible et offre des fonctionnalités plus riches. Il est également plus rentable à grande échelle. Redis fournit également plus de types de données.
Vous bénéficiez également de fonctionnalités supplémentaires telles que la prise en charge géospatiale en temps réel. Si vous travaillez avec des applications de localisation, Redis est une bonne option. Redis est également le meilleur choix si vous avez besoin de persistance, de réplication et de fonctionnalités avancées.
Memcached offre simplicité et facilité d’utilisation pour la mise en cache. Il est multi-thread et offre une meilleure mise à l’échelle. Si vous travaillez avec un type de données et que vous n’avez pas besoin de persistance, Memcached est une bonne option.
Installation de Redis et Memcached
Pour installer Redis ou bien Memcached selon votre choix, il vous faudra vous connecter sur le manager d’Infomaniak avec votre identifiant et votre mot de passe. Choisissez ensuite votre serveur Cloud et dirigez-vous dans « Fast installer » dans le menu de gauche. Cliquez ensuite sur le bouton « installer une application » et choisissez Redis ou bien Memcached pour gérer le cache objet sur votre serveur.
En fonction de votre choix, il y aura ou non des paramètres supplémentaires à faire à partir du manager d’Infomaniak. Si vous avez choisi d’utiliser Memcached, il n’y a aucun paramétrage possible depuis la manager. En revanche, si vous avez choisi d’utiliser Redis, vous pouvez cliquer sur les trois petits points à droite, puis cliquer sur configurer. Vous aurez alors accès à plusieurs paramètres pour Redis, les modifications que vous allez pouvoir apporter sont :

- timeout : Délai d’attente (ms) pour les opérations de connexion
- databases : Index de base de données par défaut
- maxmemory : La directive maxmemory est utilisée afin de configurer Redis pour utiliser une quantité de mémoire spécifiée pour l’ensemble de données. La mise à zéro entraîne l’absence de limites de mémoire.
- maxmemory_policy : Comment Redis sélectionnera ce qu’il faut supprimer lorsque la mémoire maximale est atteinte. Vous pouvez choisir parmi cinq comportements :
- allkeys-lru -> supprimer n’importe quelle clé selon l’algorithme LRU
- volatile-random -> supprimer une clé aléatoire avec un ensemble d’expiration
- allkeys-random -> supprimer une clé aléatoire, n’importe quelle clé
- volatile-ttl -> supprime la clé avec l’heure d’expiration la plus proche (TTL mineur)
- noeviction -> n’expire pas du tout, retourne simplement une erreur sur les opérations d’écriture
- eneble_password : Se paramètres permet tout simplement d’ajouter un mot de passe pour la communication entre votre serveur et Redis, vous pouvez ensuite choisir votre mot de passe l’inscrivant juste en dessous.
Installation plugin WordPress
Une fois que l’on a terminé avec le manager d’Infomaniak, il vous faudra aller sur le back-office de WordPress et installer une extension qui vous permettra de faire fonctionner votre système de cache. Il existe plusieurs extensions disponibles, peut-être même que vous en utilisez une qui pourra exploiter un de ces systèmes. Pour Memcached vous pouvez utiliser une de ses extensions :
Si vous utilisez W3 Total Cache comme plugin de cache vous pouvez directement utiliser Memcached ou Redis. Pour avoir plus d’infos sur comment configurer W3Total Cache vous pouvez aller voir sur ce site qui vous en dira plus : rdr-it.com
Varnish le serveur de cache HTTP
Un autre moyen intéressant pour pouvoir accélérer son site c’est d’utiliser un reverse proxy comme Varnish. Varnish est un proxy inverse, il se situe donc entre l’agent utilisateur (le navigateur) et le serveur Web. Il prend la décision de fournir une version mise en cache de la page ou d’envoyer la demande au serveur Web principal pour traitement. Par défaut, il le fera en écoutant les en-têtes HTTP que le client envoie ainsi que ceux avec lesquels le serveur répond.

Dans un scénario normal, le navigateur se connecte probablement directement au serveur Web, qui à son tour permettra à PHP d’exécuter la requête. La configuration la plus simple possible. Lorsque Varnish est introduit, certaines choses se produisent.
Le serveur Web est caché à l’utilisateur, car cet utilisateur ne se connecte désormais qu’à Varnish. Varnish s’est lié sur le port 80 et le serveur Web s’exécute soit sur un serveur différent, soit sur un autre port. C’est Varnish qui fera la connexion au serveur web si besoin, l’utilisateur n’en a aucune idée.
Installation de Varnish
Pour l’installation de varnish chez Infomaniak il faut suivre la même procédure que pour Redis et Memcached. En cliquant sur le bouton configurer vous allez également pouvoir modifier le fonctionnement de Varnish.
Pour installer Varnish, il vous faudra vous connecter sur le manager de Infomaniak avec votre identifiant et votre mot de passe. Choisissez ensuite votre serveur Cloud et dirigez-vous dans Fast installer dans le menu de gauche. Cliquez ensuite sur le bouton installer une application et choisissez Varnish.
L’installation de Varnish va également installer HAProxy pour que celui-ci puisse fonctionner. Vous aurez des paramètres supplémentaires à faire à partir du manager d’Infomaniak, cliquer sur les trois petits points puis cliquer sur « configurer ». Vous aurez alors accès à plusieurs paramètres pour Varnish, les modifications que vous allez pouvoir apporter sont :

- max_memory : Mémoire max disponible pour Varnish
- nofile : Représente le nombre de fichiers pouvant être ouverts au maximum
- configuration du fichier VCL : Chaque demande entrante passe par Varnish et vous pouvez influencer la façon dont la demande est traitée en modifiant le code VCL. Vous pouvez diriger certaines requêtes vers des backends particuliers, vous pouvez modifier les requêtes et les réponses ou demander à Varnish de prendre diverses mesures en fonction des propriétés arbitraires de la requête ou de la réponse. Cela fait de Varnish un processeur HTTP extrêmement puissant, pas seulement pour la mise en cache.
Je vous mets ci-dessous un exemple de fichier VCL que vous êtes libre d’utiliser et de modifier en fonction de ce que vous voulez faire avec Varnish sur votre site. Je ne garantis pas que le fichier fonctionnera tel qu’elle sur votre site, il vous faudra donc probablement l’adapter à vos besoins.
Avant de commencer à utiliser votre configuration VCL, je vous conseille de tester votre code sur le site vclfiddle.net pour voir si tout fonctionne bien. Si vous ne constatez aucun problème, vous pouvez alors faire la modification sur Infomaniak.
VCL
Installation plugin WordPress
Maintenant que nous avons installé et configuré Varnish sur Infomaniak, nous allons voir comment installer un plugin sur WordPress pour le faire fonctionner. Si vous utilisez WP Rocket comme plugin de cache, vous allez pouvoir vider automatiquement le cache de Varnish en même temps que celui de WP Rocket.
Il faudra pour cela vous rendre dans l’onglet « Add-ons » de WP Rocket et activer l’Add-on « Varnish ». Si vous utilisez une IP Varnish personnalisée, il vous faudra utiliser un plugin supplémentaire que vous pouvez trouver ici.
Je vous mets ci-dessous quelques plugin supplémentaires intéressants pour faire fonctionner Varnish avec WordPress. Vous pouvez aller voir ce tuto pour vérifier si Varnish fonctionne sur votre site. Vous pouvez également utiliser W3 Total Cache.
OPcache l’accélérateur PHP
Une dernière chose que vous pouvez installer sur votre serveur Infomaniak c’est OPcache. Il ne s’agit pas d’un simple système de cache, OPcache permet d’améliorer les performances pour PHP. Il fonctionne en stockant le bytecode des scripts pré-compilés en mémoire partagée, ainsi il n’est plus nécessaire pour PHP de charger et d’analyser les scripts à chaque demande.

Installation de Opcache
Pour l’installation chez Infomaniak il faudra se rendre sur votre serveur Cloud et se diriger dans « extension PHP ». Ensuite, cliquez sur le bouton bleu pour installer une extension puis choisissez d’installer PHP_OPcache.
En cliquant sur le bouton configurer, vous aurez accès à un certain nombre de paramètres. Si vous ne savez pas ce que vous faites, je vous conseille de les laisser par défaut. Voici les paramètres que vous pourrez toutefois modifier si vous le souhaitez.

- max_accelerated_files : Le nombre maximal de clés (et donc, de scripts) dans la table de hachage d’OPcache. La valeur actuellement utilisée sera le premier nombre du jeu des nombres premiers
{223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793}
qui est plus grand ou égal que la valeur configurée. La valeur minimale est 200. La valeur maximale est 100000 dans PHP < 5.5.6, et 1000000 dans les versions ultérieures. Les valeurs hors de cet intervalle sont fixées à l’intervalle autorisé. - memory_consumption : La taille de la mémoire partagée utilisée par OPcache, en megabytes. La valeur minimale permissible est
"8"
, qui est forcé si une valeur plus petite est définie. - interned_strings_buffer : La quantité de mémoire utilisée pour stocker des chaînes internes, en megabytes. Cette directive de configuration est ignorée dans PHP < 5.3.0.
- validate_timestamps : Si activé, OPcache va vérifier les mises à jour des scripts toutes les opcache.revalidate_freq secondes. Lorsque cette directive est désactivée, vous devez réinitialiser OPcache manuellement via la fonction opcache_reset(), la fonction opcache_invalidate() ou en redémarrant le serveur Web pour que les modifications du système de fichiers ne prennent effet.
- revalidate_freq : La fréquence de vérification du timestamps du script afin de détecter les possibles mises à jour, en secondes. La valeur
0
fera qu’OPcache vérifiera les mises à jour à chaque requête.Cette directive de configuration est ignorée si opcache.validate_timestamps est désactivé.
- blacklist_filename : L’endroit de stockage du fichier gérant la liste noire OPcache. Un fichier de liste noire est un fichier texte contenant des noms de fichiers qui ne doivent pas être accélérés ; un par ligne. Les jokers sont autorisés, et les préfixes peuvent également être fournis. Les lignes commençant par un point-virgule sont vues comme des commentaires et seront donc ignorées.
Un fichier de liste noire simple ressemble à ceci :
; Correspond à un fichier spécifique. /var/www/broken.php ; Un préfixe qui correspond à tous les fichiers qui commencent par x. / var / www / x ; Une correspondance avec un joker. /var/www/*-broken.php
- enable_cli : Active le cache d’opcode pour la version CLI de PHP.
- save_comments : Si désactivés, tous les commentaires de documentation seront supprimés du cache opcode afin de réduire la taille du code optimisé. La désactivation de cette directive peut casser des applications et des frameworks qui s’appuient sur l’analyse des commentaires pour les annotations, comme Doctrine, Zend Framework 2 et PHPUnit.
- revalidate_path : Si désactivés, les fichiers en cache existant utilisant le même include_path seront réutilisés. Aussi, si un fichier avec le même nom est quelque part ailleurs dans le include_path, il ne sera pas trouvé.
- validate_root : Empêche la collision de noms dans les environnements `chroot`ées. Ceci devrait être activé dans tous les environnements `chroot`ées pour empêcher l’accès aux fichiers en-dehors du chroot.
- consistency_checks : Si vaut différent de zéro, OPcache va vérifier la somme de contrôle du cache toutes les N requêtes, où N est la valeur de cette directive de configuration. Ceci ne doit être activé que lors du débogage, sachant qu’il impacte fortement les performances.
- preload : Spécifie un script PHP qui sera compilé et exécuté lors du démarrage du serveur, et qui peut précharger d’autres fichiers, soit grâce à include ou en utilisant la fonction opcache_compile_file(). Toutes les entités (par exemple fonctions et classes) définies dans ces fichiers seront disponibles aux requêtes prêtes à l’emploi, jusqu’à ce que le serveur soit éteint.
Installation plugin WordPress
Looks de Series et Films
Conclusion
Merci pour la lecture de cet article
Voilà qui conclut cet article. J’espère que vous aurez appris des choses qui vous seront utiles pour améliorer la vitesse de votre site internet chez Infomaniak. Si vous souhaitez vous renseigner sur les offres d’Infomaniak, vous pouvez cliquer ici.
Si vous avez des questions ou des recommandations, n’hésitez pas à utiliser l’espace commentaire juste en dessous.
Pour ne rater aucun article, abonnez-vous au site en utilisant l’espace d’abonnement ci-dessous. Quant à moi, je vous dis à bientôt pour de nouveaux articles sur ChrisTec.

Les 8 derniers articles publiés sur le site
Les 3 derniers articles liés

Musso V900 : zoom sur les atouts d’une chaise ergonomique pensée pour les longues sessions
Bienvenue dans ce test et cette revue approfondie du fauteuil ergonomique MUSSO V900, un modèle qui suscite l’intérêt de nombreux utilisateurs à la recherche du confort ultime et d’une posture impeccable devant leur ordinateur.

Test de l’enceinte Bluetooth magnétique Edifier G200
L’univers des enceintes Bluetooth est en constante évolution, et aujourd’hui, nous nous intéressons à un modèle qui promet de combiner portabilité, puissance sonore et design moderne, l’Edifier G200. Conçue pour les amateurs de musique en déplacement, cette mini-enceinte regorge de fonctionnalités intéressantes.

Test du graveur et découpeur laser Mecpow X4 Pro 22W
La machine de gravure laser Mecpow X4 Pro 22W est une machine de gravure et de découpe laser qui se démarque par sa puissance impressionnante et sa large zone de travail de 410 x 400 mm. Avec un boîtier en acrylique pour l’évacuation de la fumée est tout ça à un très bon prix.
Commentaires récents