Pour rendre votre mode de maintenance plus flexible, définissez 503 lorsqu'un fichier spécial existe, par exemple :
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/.maintenance -f
RewriteRule .* - [R=503]
NOTE : L'emplacement de DOCUMENT_ROOT peut différer entre httpd 2.2 et 2.4.
De cette façon, tout ce que vous avez à faire est "touch /path/to/docroot/.maintenance" et votre site commencera instantanément à renvoyer des 503. Ensuite, pour rendre le tout plus pur, créez une page d'erreur html personnalisée et joliment formatée et ajoutez-la au bon fichier de configuration du serveur Apache :
ProxyErrorOverride on
ErrorDocument 503 /error/503.html
Et pour les points bonus, si vous avez plusieurs serveurs web, faites en sorte que l'emplacement de .maintenance soit sur un système de fichiers partagé ou, pour encore plus de points bonus, faites en sorte que l'emplacement de .maintenance soit sur un système de fichiers partagé :
pdsh -w $web1_ip,$web2_ip,$web3_ip "sudo touch /path/to/docroot/.maintenance"
L'avantage de faire reposer le mode de maintenance sur un fichier est qu'il fonctionne lorsque votre application ne fonctionne pas, qu'il est rapide et simple, et qu'il est plus facile pour un proxy de mise en cache frontal de le gérer parce que vous pouvez gérer tous les 503 du backend en une seule fois.
Sources :