web-dev-qa-db-fra.com

Risque de clohaling de charge équilibrée Drupal Site où le nouveau contenu peut prendre un certain temps pour accéder à tous les serveurs

Je souhaite utiliser l'équilibreur de charge (2 nœuds) pour un site mon Drupal. Cela signifie que l'éditeur ne peut pas éditer le site car les modifications iront à n'importe quel noeud. Deuxièmement, des commentaires peuvent également être enregistrés dans l'un ou l'autre des nœuds.

Même si nous édions le site localement et migrez les modifications vers tous les nœuds, il peut parfois y avoir un problème dans lequel l'un des nœuds peut ne pas être entièrement mis à jour. Cependant, il n'y a pas d'option pour des commentaires dans ce cas

Lorsque Google analyse le contenu, il peut trouver un contenu différent à des moments différents à partir de la même URL.

Comment gérer le problème de clohaling résultant du fait de l'utilisation de l'équilibreur de charge?

2
user5858

Ce que vous décrivez est Not Cloaking. Cloaking sert de contenu différent pour GoogleBot en fonction de l'en-tête de l'agent utilisateur. Dans le Sénario, vous décrivez, les utilisateurs et Googlebot ont les chances de voir un contenu incorrect. Vous n'essayez pas d'être sournois et imbécile Googlebot en l'indiquant quelque chose de différent des utilisateurs. Il n'y a pas de risque de sanctionner votre site à cause de cela.

Le comportement que vous décrivez n'est pas idéal pour les utilisateurs. Vous devriez être capable d'exécuter Drupal derrière un équilibreur de charge sans de tels problèmes. Pour ce faire:

  • Centraliser votre base de données
  • Utilisez un support NFS partagé pour les fichiers que Drupal écrit
  • Utilisez un backend de cache qui utilise Memcached ou Redis (plutôt que le cache de disque local)
  • Utilisez un script pour mettre à niveau tout votre Drupal instances à la fois
  • Assurez-vous que chaque Drupal CRON fonctionne uniquement une seule fois (installé sur un seul serveur)

                          ┌─→ Web server 1 ↘
Browser ─→ Load balancer ─┼─→ Web server 2 → Database
                          └─→ Web server 3 ↗

Les références:

2
Stephen Ostermiller

Je pense que vous avez deux bases de données correspondant aux deux nœuds. Peut-être que vous pouvez déplacer la base de données sur une machine distincte ou un service en nuage (comme AWS RDS par exemple). Après une telle configuration, toute modification doit réfléchir dans les deux nœuds, même si vous mettez à jour l'un des nœuds.

Si vous ne souhaitez pas configurer un serveur de base de données séparé, vous pouvez peut-être essayer une sorte de synchronisation en temps réel entre les instances de la base de données. Je pense que des solutions existeront pour une telle synchronisation bidirectionnelle, mais peut être complexe et exigeant des ressources.

1
Kannan