bonsoir a tout le monde ,je voudrais savoir si c'est possible de relier deux serveurs apache : si un serveur apache tombe en panne l'autre prend le relais
merci d'avance
bonsoir a tout le monde ,je voudrais savoir si c'est possible de relier deux serveurs apache : si un serveur apache tombe en panne l'autre prend le relais
merci d'avance
Le plus simple est mettre en place un programme de surveillance : ce programme fait très régulièrement une requête HTTP sur le premier serveur pour savoir s'il fonctionne pas ; si le programme détermine que le serveur n'est plus disponible, il déclanche la mise en place du second serveur. Il faut bien penser à basculer l'adresse IP qui sert de point d'entrée sur le serveur Web sur le second serveur.
On peut également mettre devant les serveurs Apache un répartiteur de charge (load balancer ou LBR pour les anglophones) qui sait faire de la détection d'indisponibilité. Dans ce cas, le répartiteur de charge est le point d'entrée du site Web, donc pas besoin de basculer l'adresse IP du site.
Dans les 2 cas, il faut bien voir qu'on continue (ou peut continuer) à disposer d'un point unique d'échec (Single Point of Failure comme disent les anglosaxons) : le programme de détection dans le premier cas et le répartiteur de charge dans le second cas. Il faut donc sûrement aussi prévoir une redondance de ces composants. Ce n'est pas obligatoire, tout dépend du niveau de service qu'on veut mettre en place, c'est-à-dire savoir si l'échec du programme de bascule ou le répartiteur de charge est accepté ou non.
bonsoir je vous remercie pour votre réponse je voudrais savoir comment programmer
une requête HTTP sur le premier serveur
merci
Ben tout dépend du langage de programmation. Si tu écris un script shell, tu peux utiliser une commande comme wget ou curl.
bonsoir merci pour votre réponse pouriez vous me donner un simple exemple en php
merci d'avance et bon courage
Un script PHP ? Il n'a d'intérêt que s'il est appelé en ligne de commande, on est d'accord ? On est bien d'accord que le programme de surveillance d'Apache est un programme externe à Apache ? Ce script PHP que tu me demandes ne doit pas être "installé" dans le document root d'Apache (donc appelé par le Web) car il n'y a absolument aucun intérêt (à mon sens tout du moi) à ce qu'il soit exécuté de cette façon : si Apache tombe, justement, le script ne peut pas être exécuter et tu ne peux pas faire la bascule. En outre, il faut exécuter régulièrement le script et c'est pas Apache qui peut faire ça donc dans tous les cas, il faut que tu mettes en place un processus de surveillance régulier hors Apache.
Sinon, on peut envisager un script qui ressemble à ça :
A appeler donc en faisant ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php $handle = @fopen("http://monserveur/url_a_surveiller", "r"); // Si on ne recupere rien de valide c'est qu'Apache est indisponible if (!$handle) { // On opere la bascule ... } ?>
Personnellement, je pense qu'un script shell serait plus adapté qu'un script PHP car s'il faut aussi basculer une interface réseau et redémarrer des services, il faut exécuter des commandes système et depuis PHP tu risques de galérer un peu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part bash-2.05$ php monscript.php
Salut,
Perso je pense qu'un script bash et bcp plus intéressant est facile à mettre en œuvre via une crontab que le script php
Ce dernier pourra au moins démarrer le second apache en cas de "failure" du premier sans trop se prendre la tête..
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager