Avec notre site Web, nous voulons faire en sorte que si le site est sur le point de tomber en panne, il affiche à la place un 503 personnalisé (basé sur une limite de charge du serveur définie par nous). Y at-il quelque chose qui peut déjà gérer cela qui est déjà intégré, ou un plugin qui pourrait aider?
Je sais que des plug-ins de mode de maintenance à commutation manuelle sont disponibles, mais si le site rencontre un trafic important, ils seront supprimés.
Twitter et d'autres sites à volume élevé utilisent probablement cette couche avant les serveurs. Probablement avec un équilibreur de charge capable de détecter la charge du serveur sur tous les serveurs et si la charge est trop élevée (lorsque les machines cessent de répondre), elles redirigent le trafic vers un serveur qui renvoie uniquement la page "fail whale".
Cette réponse sur le dépassement de capacité suggère d'examiner sys_getloadavg()
et d'afficher une erreur lorsqu'elle est trop élevée (et "trop élevé" doit être définie par essais et erreurs). ). Je le ferais dans le fichier index.php
principal qui "démarre" WordPress, pour obtenir une sortie rapide et ne pas surcharger le serveur.
Si votre système est sous Linux, vous pouvez lire la charge réelle du serveur à partir de /proc/loadavg
Par exemple:
$load = reset ( explode ( ' ' , file_get_contents('/proc/loadavg') ) );
if ($load > 3.14 )
{
// load too high,
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 60');
fail_whale();
}
EDIT: ajout de lignes de méthode d’en-tête.
Vous pouvez personnaliser le message pour le moment où la base de données est hors service par db-error.php
dans le répertoire wp-content
.
Mais si PHP est en panne, je ne pense pas qu'il y ait quoi que ce soit que WP ou son plugin puisse le faire. Il est préférable de demander à votre hébergeur comment personnaliser la page 503 du serveur.
Dans votre fichier .htaccess, ajoutez cette ligne:
ErrorDocument 503 /error503.html
Créez ensuite un fichier error503.html à la racine du site contenant vos éléments personnalisés.
Cela peut ou peut ne pas fonctionner selon la configuration de votre hébergement.