2008-09-18 8 views
3

J'ai un site Web fonctionnant sur une pile Linux/Apache/Tomcat qui doit être automatiquement mis hors ligne tous les quelques mois pour la maintenance du serveur, qui durera un certain temps. Quelles sont les options permettant à Apache d'afficher et de supprimer une page de «maintenance du serveur»?Maintenance automatisée du serveur Apache Page

Je dois être en mesure de contrôler cela via un script shell. (Les réponses fournies par Google concernent l'édition manuelle de la configuration du serveur, et je ne veux pas être au bureau à 3 heures du matin!) Je suppose que je pourrais faire tomber le script dans un fichier .htaccess et le supprimer quand c'est fait mais cela semble moins que gracieux.


commentaires Réponse:

Mike's answer ressemble les meilleures pratiques répondent, bien que ce que je vais faire est probablement plus comme Dan's answer parce que le fournisseur d'hébergement tiers contrôle l'équilibrage de charge et je ne le font pas vouloir faire face à ce gâchis. Merci!

Répondre

5

Nous avons une configuration qui fait exactement cela, mais elle comprend plus que juste apache. Il y a un loadbalancer et deux serveurs derrière. Les deux serveurs Web servent de site Web en utilisant Apache et l'un d'entre eux a un hôte virtuel supplémentaire qui sert une simple page de maintenance HTML. L'équilibreur de charge dispose d'un service HTTP virtuel qui redirige les demandes vers des serveurs réels. 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 vrais serveurs 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 déconnectés pour une raison quelconque, toutes les demandes vont à l'hôte de maintenance et les utilisateurs voient la page d'erreur avec un numéro de téléphone. En fait, j'utilise un petit script pour vérifier la santé des vrais serveurs, donc la page de maintenance s'affiche dès qu'il y a un signe de problème.

PS. J'utilise Load Master 1500 pour loadbalancer.

1

faire 2 fichiers de configuration et de les échanger dans les deux sens

Si seulement un peu du fichier va changer, les fusionner avec venir sorte de préprocesseur et générer à la fois la norme et les versions « off-line » de une source et échange entre ceux-ci.

IIRC les fichiers de configuration apache sont construits à l'aide du RPC de toute façon

0

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

Espérons que ça aide!

3

Il 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 que placeholder de maintenance. Le script arrête simplement mon habituel Apache, et commence ceci.

Questions connexes