Écran de sécurité et charge serveur
Quand un robot lance une requête vers un site SPIP, l’écran de sécurité de SPIP évalue la charge du serveur avant de moduler le passage du robot : s’il y a déjà de la charge, une erreur est renvoyée :
Status 429 : Too Many Requests (try again soon).
Et si votre serveur est un peu trop chargé ?
Si votre serveur est trop chargé ou si vous avez un hébergement mutualisé, les robots font demi-tour : les robots de référencement et de monitoring...
Ce qui peut arriver : vos outils de référencement et de monitoring vont recevoir des erreurs de référencement et de santé du serveur :
Your service is currently DOWN - Cause : HTTP 429 - Too Many Requests
Plus de référencement de votre site et réponses de votre outil de monitoring régulièrement down.
Mécanisme de l’écran de sécurité
SPIP utilise la fonction PHP sys_getloadavg() pour estimer la charge de votre serveur.
Ensuite, la limite est fixée à 4 par défaut : si la charge est au-dessus, le status 429 est renvoyé au robot, et il est invité à repasser plus tard.
Alors comment gérer les 429 sur un serveur chargé ou mutualisé ?
En février 2021, les DEVs de SPIP on ajouté la possibilité de surcharger la valeur limite de charge du serveur : la constante _ECRAN_SECURITE_LOAD.
Ainsi, en ajoutant un fichier ./config/ecran_securite_options.php, vous pouvez :
- désactiver la protection anti-robots avec :
define('_ECRAN_SECURITE_LOAD', 0); - modifier la valeur limite :
define('_ECRAN_SECURITE_LOAD', 21);
https://www.spip.net/fr_article4200...
Mais attention, en désactivant ce filtrage robots, vous exposez votre site aux myriades de bots avides qui surchargent votre serveur !
Il est bien de pouvoir faire un filtrage en amont, avec un CDN installé en frontal, par ex.
Comment estimer la charge de votre serveur ?
Le plugin DD pour SPIP affiche cette valeur dans votre pied de page, ou plutôt 3 valeurs qui correspondent à la charge estimée, respectivement, depuis les dernières 1, 5 et 15 minutes.
Ainsi, vous aurez une idée de la valeur limite à utiliser.