Nos clients installent le plugin CrowdHandler pour faire face à un trafic important. Sans surprise, ces mêmes clients installent souvent des plugins de mise en cache pour accélérer leurs sites web. Malheureusement, il peut y avoir un conflit entre les deux, et les plugins de mise en cache et les services en nuage peuvent interférer avec la capacité de CrowdHandler à décharger et à renvoyer les utilisateurs sur votre site de manière équitable.

A moins que vous ne compreniez très bien la dynamique de votre système de cache, nous recommandons de désactiver les plugins de cache et les services de cache en nuage lors de l'utilisation de CrowdHandler. Des utilisateurs ont signalé des problèmes lors de l'utilisation de notre plugin WordPress avec :

  • Kinsta
  • NitroPack
  • Cache LiteSpeed
  • CloudFlare (lorsqu'il est paramétré pour mettre en cache les pages, et pas seulement les actifs)

Il existe de nombreux plugins et services de mise en cache disponibles pour WordPress et d'autres, non listés ci-dessus, pourraient causer des problèmes. Bien que CrowdHandler agisse en tant que "bon citoyen" et définisse les en-têtes de cache corrects basés sur les normes pour aider les services tiers, ceux-ci ne sont pas toujours respectés car certains plugins cherchent à maximiser le comportement de la mise en cache en outrepassant les normes.

Les services basés sur le cloud peuvent être particulièrement sensibles à ce problème, car le comportement de la mise en cache est implémenté en dehors de WordPress et ne peut pas être remplacé par notre plugin.

Note : Nous ne sommes pas en mesure de résoudre les problèmes de configuration causés par des incompatibilités de plugins et des services tiers. Si vous êtes affecté par le comportement de la mise en cache et que vous ne parvenez pas à résoudre les problèmes de mise en cache en désactivant les plugins, envisagez de désactiver le plugin WordPress et d'utiliser notre JavaScript à la place. Le JavaScript fonctionne bien avec les systèmes de mise en cache, et la combinaison de pages bien mises en cache et du JavaScript peut être efficace pour réduire la charge sur les sites Wordpress.

Quel est le problème ?

Notre plugin Wordpress vérifie le cookie de l'utilisateur avec l'API CrowdHandler et redirige l'utilisateur vers la salle d'attente s'il doit attendre. Les plugins de mise en cache peuvent mettre en cache le cookie et/ou la redirection. Cela signifie que les utilisateurs peuvent revenir sur le site depuis la salle d'attente mais être renvoyés parce que le plugin de mise en cache a mis en cache le cookie ou la redirection d'un autre utilisateur. Les utilisateurs sont ainsi renvoyés plusieurs fois dans la salle d'attente, avec un caractère apparemment aléatoire quant à la réussite ou l'échec de l'opération.

Puis-je confirmer que mon site est concerné par ce problème ?

Si vous pensez que votre site rencontre ce problème, ou si vous voulez tester cette possibilité, il existe un test simple que vous pouvez exécuter dans une fenêtre de terminal.
Run :

curl -I https://yourdomain.com/some-protected-url

Vous devriez voir les en-têtes CrowdHandler revenir de votre page, y compris le cookie crowdhandler. Si vous ne voyez pas du tout les en-têtes, mais que vous voyez une sorte de cache : hit header, cela indique que vous visualisez une page en cache, et que le plugin CrowdHandler n'est pas invoqué. Si vous voyez les en-têtes et le cookie, répétez la demande rapidement. Si le même cookie revient (valeur identique), c'est qu'il est mis en cache.

Que dois-je faire ?

  1. Désactivez les plugins et services de mise en cache et répétez le test. Si vous commencez à voir un nouveau cookie à chaque fois, le problème est résolu. (l'expiration des caches peut prendre un certain temps avant que vous ne constatiez la correction).
  2. Si vous ne parvenez pas à désactiver les services de mise en cache, changez la méthode d'implémentation en JavaScript dans le panneau d'administration de CrowdHandler, assurez-vous que notre JavaScript est installé sur votre site et désactivez le plugin WordPress. L'intégration JavaScript définit et récupère les cookies et les redirections en JavaScript, et n'est pas susceptible d'être mis en cache. Dans ce cas, la mise en cache est une bonne chose. Si vos plugins de mise en cache fonctionnent bien, vos pages d'atterrissage devraient s'afficher rapidement et le JavaScript déchargera l'utilisateur avant qu'il n'interagisse avec des pages non mises en cache, ce qui entraînera une charge élevée.
  3. Si CrowdHandler ne protège que les URL non mises en cache, il ne sera pas sujet à ce problème. Vous pouvez donc essayer de réduire la couverture des URL de votre salle d'attente aux URL qui ne sont pas mises en cache.
  4. Si la couche de mise en cache à l'origine du problème est Cloudflare, vous devriez probablement utiliser notre outil de mise en cache Cloudflare au lieu du plugin Wordpress. Mettez en place le gestionnaire de périphérie et désactivez le plugin Wordpress. Si vous utilisez notre outil Cloudflare edge worker avec un backend Wordpress, nous vous recommandons de nous envoyer un ticket d'assistance afin que nous puissions installer des exclusions d'url Wordpress sur votre compte.