Forum général.général Changer Apache de machine sans interruption

Posté par  (site web personnel) .
Étiquettes : aucune
0
30
oct.
2005
Salut à tous,

Voila mon souci:

J'ai un serveur web, sous apache, avec SSL (juste certificat serveur, on ne s'embête pas plus).
Je dois le mettre sur une autre machine, sans qu'il n'y ait aucune interruption de l'accès au site.

Comment faire?

J'ai d'abord penser à faire une redirection, et envoyer un sig HUP à apache, ce qui fait terminer normalement les connexion en cours, mais fait relire le fichier de conf pour les nouvelles.
Ça ne me semble pas bon, parce que 2 machines seront accédées par le même nom de domaine.

Deuxième solution, "clusteriser" les 2 machines, puis enlever l'ancienne. Je ne suis pas sur que ça soit réellement possible sans interruption.

3ème solution: mettre en amont une sorte de proxy, qui sera donc la seule machine accédée de l'extérieur. C'est elle qui redirigera d'abord vers l'ancienne machine, puis vers la nouvelle, sans problème de nommage. Après, il suffira de le retirer.

D'après vous, une de ces méthodes est-elle bonne?
Y aurait-il une solution meilleure/plus simple/plus élégante?

Merci à tous ceux qui auront une idée.
  • # Et si tu donnais plus d'informations ?

    Posté par  . Évalué à 3.

    * Quelle est ta configuration réseau (routeur, serveur web en DMZ, dans un réseau local, etc) ? Ton serveur dispose-t-il d'une IP publique ou privée (NAT) ?
    * Configuration du DNS.
    * Nombre d'adresses IP routables disponibles ?
    * Le contenu du site est-il statique ou dynamique ?


    Si ton site est statique et si ton serveur est derrière un routeur linux avec le conntrack activé :
    * je placerais la deuxième machine derrière le routeur, avec apache et une copie du site,
    * je configurerais le routeur pour envoyer toutes les nouvelles connections web vers cette deuxième machine et faire suivre les connections en cours vers la première,
    * lorsque toutes les connections web vers la première machine sont terminées, je configurerais le routeur pour qu'il envoie les connections web uniquement vers la deuxième machine.

    Ne te plante pas dans les règles iptables sur le routeur!

    P.S. Un enregistrement DNS peut pointer sur plusieurs adresses IP (teste www.google.com). C'est utilisé pour de la répartition de charge mais cela ne répond pas à ton problème.

    P.S. Comment veux-tu installer une sorte de proxy sans interrompre le service ?
    • [^] # Re: Et si tu donnais plus d'informations ?

      Posté par  (site web personnel) . Évalué à 1.

      Salut,

      Je n'ai donné que les informations que je pensais nécessaires, sachant que je voudrais trouver une solution "générale".
      Ce n'est pas un problème que j'ai en réel, mais on m'a posé la question, et malgré mes recherches, je n'ai pas trouvé de réponse.

      Le serveur est en DMZ, adresse publique. Je ne mets pas de contraintes sur le nombre d'adresses dispos.

      La solution que tu proposes revient à celle à laquelle je pensais, via un proxy.

      Quand je disais "sorte de proxy" je pensais à rajouter une machine qui ne faisait que prendre les connexions vers le serveur web, et lui renvoyer. Je pense que jouer dans le DNS doit suffire, pour faire pointer le site vers ce proxy. On accepte les connexions directes sur le serveur web le temps que la modification se propage.
      Dans le même temps, on monte le 2ème serveur. Quand la modification de DNS c'est propagée, le proxy redirige vers le nouveau serveur, on remodifie le DNS et on attend que la modification soit propagée. Quand c'est bon, on vire le proxy.

      Serais-je complètement à côté de la plaque?

      Bon, si le site est dynamique, je pense qu'effectivement ça se corse...

      En tout cas merci.
      • [^] # Serveur proxy inutil

        Posté par  . Évalué à 1.

        Pour la définition de serveur proxy :
        http://fr.wikipedia.org/wiki/Serveur_proxy

        D'après la page ci-dessous, un serveur en DMZ ne peut pas avoir d'adresse IP publique :
        http://fr.wikipedia.org/wiki/Zone_d%C3%A9militaris%C3%A9e


        Avec ta configuration (site statique) , il est inutile d'ajouter une machine "proxy". La manipulation demande trois étapes :
        * installation de la deuxième machine,
        * modification du (des) serveur(s) DNS ayant autorité pour faire pointer le nom du site vers la deuxième machine (suppression de toute référence à la première machine ),
        * Lorsque TOUS les caches DNS sont à jours, arrêt de la première machine.

        Je n'ai pas de solution pour un site mis à jour en continu.

        Le choix des durées de validité des enregistrements DNS et le maintient de caches valides sont deux sujets sensibles du DNS.

        Une bonne documentation : DNS et BIND chez O'REILLY

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.