IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IIS Discussion :

[IIS 6.1] Réécriture d'url avec un IIS en frontal, un tomcat en backend


Sujet :

IIS

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut [IIS 6.1] Réécriture d'url avec un IIS en frontal, un tomcat en backend
    Bonjour,

    Je lutte actuellement avec un problème dont voici le contexte :

    J'assure la maintenance applicative d'un pool d'applications historiques (vous connaissez l'histoire, je pense).
    Toutes ces applications sont hébergées sur un serveur windows 2008 R2. Certaines tournent sous IIS, d'autres tournent sous tomcat.
    Le serveur IIS est en frontal pour les applis sous tomcat et fait office de proxy / reverse proxy en réécrivant les url pour les applications tomcat.

    Ces applications ne sont pas maintenues depuis quelques années, et je n'ai que très peu de documentation à ma disposition. Ma mission est pour le moment de faire migrer les applications de la version 4 de tomcat à la version7.

    Dans ce que l'on considérera comme mon environnement de développement (théoriquement iso avec la prod, à l'exception de la version de tomcat : 7 dans l'env de dev et 4 en prod), la migration des applications n'a pas posé de problèmes spécifiques : elles sont accessibles et fonctionnelles à l'url http://localhost:8080/monAppli/index.jsp (elles datent un peu).

    Les choses se corsent lorsqu'il est nécessaire de paramétrer la réécriture d'url et les redirections.

    J'ai suivi une doc interne qui décrit comme étapes de configuration la même chose que sur le site ISSAdmin. J'ai essayé de paramétrer la redirection des urls réécrites (section "action" dans le menu d'édition de la règle de réécriture) vers l'url de l'une de mes applications, mais aussi vers un "server farm" dans lequel j'ai déclaré mon tomcat ainsi que les ports qu'il expose.

    Côté tomcat, la configuration pour reconnaitre les urls réécrites avec l'alias est faite au niveau du fichier server.xml (balises host).

    Dans les deux cas, j'arrive sur la page d'accueil. Mais tout se passe comme si les ressources de l'appli étaient inaccessibles.

    Pour etre précis, voici ce qu'il se passe avec la réécriture configuré comme dans la documentation décrite :

    Quand je tape dans mon navigateur l'url <http://aliasPourLappliConcernée>/index.jsp, j'ai la page d'accueil qui s'affiche (c'est à dire que j'ai une réponse http 200 pour le fichier jsp), mais j'ai une réponse 404 pour tous les autres éléments de la page (c'est à dire les images, les scripts js et les feuiles de style css).


    Le fait que j'ai une réponse 200 pour la page jsp me prête à penser que je n'ai pas d'erreurs de niveau d'arboresccence (c'est à dire que le mapping est ok; http://<AliasPourMonAppli>/index.jsp = http://localhost:8080/MonAppli/index.jsp). Or, aucun autre élément de la page ne semble trouvable.

    D'où ma question : qu'ai-je mal configuré ?

    J'ai bien conscience que le combo IIS / Tomcat est incongru, voir assez rare, donc merci d'avance aux personnes qui ont eu le courage (ou la folie) d'avoir déjà plongé les mains dans ce type de cambouis de m'éclairer de leur retour d'expérience

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Je trouve plus pratique de faire une description plus spécifique des éléments de configuration dans un post séparé.

    Côté Tomcat, mon application est déployée dans le répertoire chemin/installation/tomcat/webapps
    Dans ce répertoire se trouvent le war, et tomcat a déployé l'application dans un répertoire portant son nom : chemin/installation/tomcat/webapps/MonAppli.

    dans le fichier /chemin/installation/tomcat/conf se trouve le fichier server.xml dans lequel j'ai rajouté la balise suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Host name="aliasUrlAppli" debug="0" appBase="webapps/MonAppli" unpackWARs="true" autoDeploy="True">
        <Context path="" docBase="" debug="0" reloadable="true"/>
        <Context path="/manager" docBase="chemin/installation/tomcat/webapps/manager/" debug="0" privileged="true"/>
    </Host>

    Côté IIS :
    • Dans le module ARR, dans la section "Proxy Settings", j'ai coché "enable proxy" en spécifiant un timeout d'1h pour ne pas avoir d'erreur de timeout.
    • J'ai créé un "server farm" que j'ai nommé "tomcat". J'ai spécifié le port sur lequel Tomcat expose son service en http (port 8080). Par mesure de précaution, j'ai aussi spécifié le port https par défaut (même si mon instance Tomcat n'expose pas dessus).
    • Dans le module "URLRewrite", j'ai créé une règle : "requested url Matches the pattern using wildcards" et j'ai mis "*" dans le pattern
    • J'ai ajouté une condition que j'ai nommé "HTTP_HOST", avec "Matches the Pattern" dans la propriété "check if input string" et j'ai mis mon alias dans le pattern (le même "aliasUrlAppli" que dans la config tomcat).
    • Dans la section "Action", j'ai testé deux trucs (pour le même résultat) :
    • Le type "Route to Server Farm" (Scheme: http, Server farm : "tomcat", Path "/{R:0}
    • Le type "Rewrite" avec pour valeur pour la propriété "Rewrite Url" : http://localhost:8080/{R:0}



    Voilà, si vous avez besoin de plus de précisions, n'hésitez pas à me le demander, je vais scruter ce thread.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Pour ceux qui rencontreraient le même problème que moi, je l'ai résolu, même si je ne connais pas les raisons intrinsèques qui font que ce que j'ai fait ne marche pas, mais ce que j'ai essayé par la suite marche.

    Côté IIS, j'ai modifié la règle spécifiée dans le module de réécriture d'url. Au lieu d'utiliser "Wildcards" avec le pattern " * ", j'ai spécifié une regex : "(MonAppli. +)"

    Je marque la discussion comme résolue.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réécriture d'url avec un .htaccess
    Par Sanyi dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 20/08/2008, 16h01
  2. Réécriture d'URL avec 10 variables d'URL
    Par will89 dans le forum Apache
    Réponses: 2
    Dernier message: 03/07/2008, 10h52
  3. Réécriture d'url avec dossier
    Par paterson dans le forum Apache
    Réponses: 4
    Dernier message: 20/06/2008, 18h42
  4. Réponses: 2
    Dernier message: 18/04/2007, 18h18
  5. La réécriture d'URL avec Apache
    Par agencep dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2006, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo