Migrer ses sites web dans un environnement jailé sans interruption de service ============================================================================= iMil , 08 / 2004 Il existe de nombreux documents expliquant la mise en place d'un environnement jailé sous FreeBSD, man 8 jail pour ne citer que lui. Mais la migration de plusieurs sites web en jail peut s'avérer plus complexe qu'un simple mv de l'arborescence des sites. Aussi, je vous propose ces quelques astuces qui m'ont permi de migrer mes sites web de manière transparente d'un environnement normal à un jail. Je ne traiterai pas dans cette documentation de l'installation du jail lui-meme, ce sujet étant déjà très abondemment documenté. Evidemment, vous aurez besoin d'exactement les memes outils dans le jail que vous possédez déjà dans l'environnement "libre". En utilisant votre méthode favorite (portupgrade, make install clean...), installez apache configuré pour répondre sur l'adresse du jail, et par exemple sur le port 8080. Considérons que l'adresse du jail est 192.168.0.1 : #--- extrait du httpd.conf BindAddress 192.168.0.1 Port 8080 ... NameVirtualHost 192.168.0.1:8080 # declaration standard de votre vhost ... #--- fin de l'extrait Afin d'atteindre votre apache jailé, ajoutez la règle suivante dans l' /etc/ipnat.rules de la machine "libre" : # pour y accéder depuis l'exterieur rdr fxp0 ip.publique/32 port 8080 -> 192.168.0.1 port 8080 # pour la redirection locale rdr lo0 ip.publique/32 port 8080 -> 192.168.0.1 port 8080 Puis rechargez les règles de translation d'adresse. Il est temps d'activer la redirection transparente entre l'apache frontal et l'apache emprisonné, nous allons pour cela utiliser deux modules, mod_rewrite et mod_proxy, voici un exemple fictif : #--- exemple ServerAdmin vous@domaine.com ServerName www.domaine.com ServerAlias robert.domaine.com # Nous n'allons pas nous servir des fonctions de proxying / cache ProxyRequests Off # On active le systeme de reecriture d'urls RewriteEngine On # On reecrit l'adresse à la volée avec un :8080 derrière, de cette façon c'est # l'apache emprisonné, grace à notre redirection de port, qui va réellement # répondre à cette requete RewriteRule ^/(.*) http://www.domaine.com:8080/$1 [P,L] # On s'assure que les redirections de type headers "Location" sont bien ajustées ProxyPassReverse / http://www.domaine.com:8080/ ErrorLog /var/log/apache/domaine.com-error_log CustomLog /var/log/apache/domaine.com-access_log combined #-- fin de l'exemple Voila ! reste à démarrer les deux apache et peaufiner vos configurations. iMil