Rediriger le traffic HTTP d’un serveur à un autre avec Apache

Un site est sur un serveur dédié A. Vous voulez le migrer sur un serveur dédié B. La migration des fichiers et de la base de données éventuelle ne pose pas spécialement de problème. Ce qui est plus délicat, c’est lorsque vous allez modifier les pointages DNS du nom de domaine : en effet, le temps de la propagation, certains visiteurs vont rapidement arriver sur le serveur dédié B alors que d’autres vont rester bloqués sur le serveur A pendant 24 à 48h. Si dans le cadre d’un site statique cela ne pose aucun souci, c’est plus problématique dans le cas d’un site dynamique car cela peut engendrer une désynchronisation de la base de données entre les deux serveurs et conduire à des pertes de données.

L’idéal serait que le serveur A puisse rediriger les visiteurs sur le serveur B le temps de la propagation des DNS. Apache va nous y aider.

Read the reviews of the best electric knife sharpener on C.Knives website.

Pour cela il faut dans un premier temps activer le module proxy dans Apache. Nous allons ici nous contenter de rediriger le traffic HTTP uniquement.

> cd /etc/apache2/mods-enabled
> ln -s ../mods-available/proxy.conf proxy.conf
> ln -s ../mods-available/proxy.load proxy.load
> ln -s ../mods-available/proxy_http.load proxy_http.load

Ensuite on va modifier le virtualhost du domaine en question:

<VirtualHost *>
    ServerName mondomaine.com
    ServerAlias mondomaine.com www.mondomaine.com

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyRequests Off
    ProxyPass / http://mon_ip_de_domaine/~user/
    ProxyPassReverse / http://mon_ip_de_domaine/~user/
</VirtualHost>

Dans ce schéma, nous voyons que sur le serveur de destination nous avons activé le mod_userdir afin de pouvoir accéder au site par une adresse temporaire.

Un petit

> /etc/init.d/apache2 reload

et votre traffic devrait être redirigé.

Attention cependant pour tous les sites dynamiques utilisant PHP : avec cette méthode, les variables $_SERVER[‘PHP_SELF’] et $_SERVER[‘REQUEST_URI’] auront les informations du serveur de destination…

Mots-clefs : , , ,



Laisser une réponse

Vous devez être connecté pour publier un commentaire.