Comment ouvrir des URL publics sur différents ports d'une même machine
Par philippe voncken, lundi 10 mai 2010 à 13:12 :: Web et XML :: #191 :: rss
Vous avez installé toute une plateforme d'intégration continue sur une machine et vous souhaitez ouvrir des URL publics pour que différents projets puissent utiliser votre plateforme.
Disons que vous avez installé :
- SVN couplé à Apache2 sur le port 80
- Hudson sur le port 8081
- Trac sur le port 8082
Vous souhaitez créer les URL publics suivantes sans avoir besoin de préciser le numéro du port :
- http://svn.corporate.com/
- http://hudson.corporate.com/
- http://trac.corporate.com/
Pour se faire il vous suffit d'utiliser la réécriture d'URL de Apache2 qui est installé sur le port 80.
Mémo technique d'installation de la réécriture d'URL sur Apache2
Pour rendre plus générique ce petit mémo :
- Les fichiers sources de Apache2 se trouvent dans le répertoire /PATH_DES_SOURCES/
- Les binaires et la conf de Apache2 se trouvent dans /PATH_DES_BIN/
- La version de Apache2 utilisé ici est la 2.2.11
Placez-vous dans le répertoire où se trouve le fichier mod_proxy.c (/PATH_DES_SOURCES/httpd-2.2.11/modules/proxy) et recompilez les modules utiles pour le proxy pass reverse avec les deux commandes suivantes.
/PATH_DES_BIN/httpd-2.2.11/bin/apxs -a -i -c mod_proxy.c proxy_util.c /PATH_DES_BIN/httpd-2.2.11/bin/apxs -a -i -c mod_proxy_http.c mod_proxy_connect.c
Les modules mod_proxy mod_proxy_http et mod_proxy_connect ont dû être installés dans le répertoire /PATH_DES_BIN/httpd-2.2.11/modules/, les fichiers en .so
Ensuite il faut activer la réécriture d'URl en créant un virtual-host de la manière suivante.
Dé-commenter la ligne "Include conf/extra/httpd-vhosts.conf" dans le fichier /PATH_DES_BIN/httpd-2.2.11/conf/httpd.conf
Ajouter les virtual hosts dans le fichier /PATH_DES_BIN/httpd-2.2.11/conf/extra/httpd-vhosts.conf comme l'exemple ci-après qui correspond au contexte décrit plus haut dans ce billet :
<VirtualHost *:80> ServerName svn.corporate.com ServerAlias www.svn.corporate.com ProxyPreserveHost On ProxyPass / http://localhost:80/svn/ ProxyPassReverse / http://localhost:80/svn/ ErrorLog "logs/svn.corporate.com-error_log" CustomLog "logs/svn.corporate.com-access_log" common </VirtualHost> <VirtualHost *:80> ServerName hudson.corporate.com ServerAlias www.hudson.corporate.com ProxyPreserveHost On ProxyPass / http://localhost:8081/hudson/ ProxyPassReverse / http://localhost:8081/hudson/ ErrorLog "logs/hudson.corporate.com-error_log" CustomLog "logs/hudson.corporate.com-access_log" common </VirtualHost> <VirtualHost *:80> ServerName trac.corporate.com ServerAlias www.trac.corporate.com ProxyPreserveHost On ProxyPass / http://localhost:8082/trac/ ProxyPassReverse / http://localhost:8082/trac/ ErrorLog "logs/trac.corporate.com-error_log" CustomLog "logs/trac.corporate.com-access_log" common </VirtualHost>
Relancer Apache2 :
/PATh_DES_BIN/httpd-2.2.11/bin/apachctl -k restart
Ca devrait marcher :)
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.