• Mémo Créer une page de maintenance pour un site Internet

  • Attention, travaux !

Une migration qui bug, des problèmes en cascade, une migraine qui pointe et c'est l'horreur. La crainte de la page blanche côté client peut être évitée, comme ceci :

Configuration du serveur

Dans le fichier de configuration du serveur (ici Nginx), on crée une exception qui renverra une erreur. Cette erreur affichera une page de maintenance.

/etc/nginx/sites-available/myapp.conf :

server {
    location / {
        proxy_pass  http://unix:/run/gunicorn.sock;
        if (-f /var/www/html/maintenance_on.html) {
                return 503;
        }
        [...]
        error_page 503 /maintenance_on.html;
        location = /maintenance_on.html {
            root /var/www/html/;
        }
    }
}

On relance le serveur :

systemctl restart nginx

Création du fichier html de la page de maintenance :

/var/www/html/maintenance_off.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Maintenance</title>
  <style>
  body {
    width: 35em;
    margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif;
  }
</style>
</head>
<body>
  <center>
    <h1>Bienvenue sur monsite.com</h1>
    <p></p>
    <h3>Une maintenance est en cours !</h3>
    <p></p>
    <p>Merci de bien vouloir vous reconnecter dans un moment.</p>
  </center>
</body>
</html>

Automatisation du projet

Si ce n'est pas déjà fait, on crée une Makefile dans le dossier racine du projet :

$ cd /path/to/myproject
$ touch Makefile

maintenanceon:
    sudo mv /var/www/html/maintenance_off.html /var/www/html/maintenance_on.html

maintenanceoff:
    sudo mv /var/www/html/maintenance_on.html /var/www/html/maintenance_off.html

Pour lancer la page de maintenance, il suffit maintenant de faire

make maintenanceon

ou

make maintenanceoff


24 décembre 2018 11:37