Si vous avez un serveur Web de type Windows 2008 avec IIS et pourquoi pas PLESK, vous pourriez vous retrouver dans un cas où vous voudriez que :
www.mondomaine.com/blabla/ redirige de manière transparente vers un site Web tournant sur un serveur Web Tomcat (hébergé sur la même machine)…
En résumé, j’interroge www.mondomaine.com/blabla , IIS récupère la requêtes et retourne à l’utilisateur la réponse de http://localhost:8090/monSiteSurTomcat
Jusqu’à présent pour rediriger des requêtes IIS vers un serveur Tomcat, de manière transparente, il fallait utiliser l’ISAPI_REDIRECT.DLL mis à disposition par Jakarta avec, pour ce qui me concerne, des résultats un peu trop aléatoire… J’y ai passé des heures dernièrement pour ne jamais atteindre mon but !
Des heures pour finalement « découvrir » qu’avec IIS 7.5 il existait une bien belle alternative à l’utilisation de l’ISAPI_REDIRECT.DLL.
1) Téléchargez le module de redirection dédié IIS 7.x nécessaire http://www.iis.net/download/ApplicationRequestRouting ici. Avec Application Request Routing 2.5 en quelques secondes vous allez pouvoir faire ce que vous voulez en terme de redirection. Et ça c’est bien !
2) Après intallation, démarrez IIS (inetmgr.exe) puis cliquez sur le nom du serveur. Dans les modules (rubrique IIS), vous verrez Application Request Routing Cache. Double cliquez dessus pour accéder à la configuration du module. Dans le panneau de droite, cliquez sur Server Proxy Settings. Cochez Enable Proxy et laisser les valeurs par défaut.
3) Dans l’arborescence des sites Web présentée par IIS (à gauche), sélectionnez le site Internet pour lequel vous souhaitez mettre en place cette redirection. Par exemple : www.mondomaine.com.
Dans la fenêtre centrale, double cliquez Url Rewrite pour ouvrir le module de Rewriting . Dans la zone de droite, cliquez sur Add Rules. Vous devez maintenant éditer la règle.
4) Donnez un nom à votre règle (par exemple Tomcat).
Dans la zone Pattern spécifiez le modèle qui permettra à IIS d’interpréter votre règle. Nous voulons rediriger les requêtes : www.mondomaine.com/blabla/ vers notre serveur Tomcat, donc le pattern sera (blabla.+)
Nous éditons maintenant la section Action et indiquons vers quoi IIS doit rediriger en INTERNE , et donc dans notre cas, ce sera : http://localhost:8090/{R:0}
Le {R:0} sera remplacé par ce qui se trouve à la suite de notre pattern en entrée.
A ce stade, on vient de spécifier à IIS que www.mondomaine.com/blabla/index.jsp devra retourné le flux de notre serveur interne Tomcat : localhost:8090/index.jsp
Cela marche à merveille !
Simple, Rapide, Efficace…
Bonus
Si vous recevez un message d’erreur de type URL_DOUBLE_ESCAPED 404.11, éditez le fichier Web.config de votre site web www.mondomaine.com pour ajouter :
<requestFiltering allowDoubleEscaping= »true »>. Vous pouvez aussi le faire au niveau serveur.
http://support.microsoft.com/kb/942076
BONUS 2 :
Après installation du module ARR 2.5 sur un serveur PLESK, vous pourriez rencontrer des problèmes de la part de PLESK. En effet, pour une raison obscure, ARR 2.5 va modifier des droits des dossiers PLESK qui aura par la suite du mal à charger certaines DLL…
Vérifiez les droits pour les dossiers :
« C:Program Files IIS » et « C:Program Files (86)IIS » et assurez vous que les comptes techniques de PLESK (paaadm et psacln) ont les droits de lecture écriture.
Auteur: Alain BELUT