Question

J'ai un site Web exécuté sur une pile Linux / Apache / Tomcat qui doit être automatiquement mis hors ligne tous les quelques mois à des fins de maintenance du serveur, ce qui durera une quantité de temps arbitraire. Quelles sont les options permettant à Apache de mettre en place et de supprimer une "maintenance du serveur"? page?

Je dois pouvoir contrôler cela via un script shell. (Les réponses fournies par Google tournent autour de la modification manuelle de la configuration du serveur, et je ne veux pas être au bureau à 3 heures du matin!) Je suppose que je pourrais faire en sorte que le script soit déposé dans un fichier .htaccess et supprimé ensuite. mais cela semble moins que gracieux.

Répondre au commentaire:

La réponse de Mike ressemble à la meilleure pratique, bien que ce que je ferai ressemble probablement davantage à Réponse de Dan car le fournisseur d'hébergement tiers contrôle l'équilibreur de charge et je ne souhaite pas gérer ce gâchis. Merci!

Était-ce utile?

La solution

Nous avons une configuration qui fait exactement cela, mais elle inclut plus qu’un simple apache. Il y a un répartiteur de charge et deux serveurs derrière celui-ci. Les deux serveurs Web servent des sites Web à l'aide d'Apache et l'un d'entre eux possède un hôte virtuel supplémentaire qui sert une page de maintenance HTML simple. L'équilibreur de charge dispose d'un service HTTP virtuel qui redirige les demandes vers de vrais serveurs. Ce service virtuel a trois serveurs réels: deux sont des serveurs réels et le troisième est une adresse IP virtuelle sur le deuxième serveur qui pointe vers la page de maintenance. Les serveurs réels sont pondérés avec le troisième ayant le moins de poids possible et l'équilibreur de charge utilise un algorithme de pondération fixe. Ainsi, lorsque de vrais sites Web sont hors ligne pour une raison quelconque, toutes les demandes sont adressées à l’hôte de maintenance et les utilisateurs voient la belle page d’erreur avec un numéro de téléphone. En fait, j’utilise un petit script pour vérifier l’état des serveurs réels. La page de maintenance s’affiche dès qu’il y a un problème.

PS. J'utilise Load Master 1500 pour loadbalancer.

Autres conseils

c'est assez facile de démarrer Apache avec un fichier de configuration personnalisé. Sur mon système:

httpd -f <config>

Je l’utilise régulièrement en combinaison avec un script shell et une configuration extrêmement simple en tant qu’espace réservé pour la maintenance. Le script arrête simplement mon Apache habituel et le lance.

créer 2 fichiers de configuration et les échanger d'avant en arrière

Si seul un petit élément du fichier va changer, fusionnez-le avec une sorte de préprocesseur et générez à la fois le fichier standard et le fichier "hors ligne". versions d'une source et permuter entre celles-ci.

IIRC les fichiers de configuration apache sont quand même construits avec CPP

Nous avons fait quelque chose de similaire. Nous avons un fichier index.html qui redirige vers la page de notre site principal. Lorsque nous avons la maintenance, nous exécutons un script qui modifie la redirection dans le fichier html. Ensuite, nous parcourons le script dans la fenêtre de maintenance automatique cron et alto.

J'espère que ça aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top