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

Apache Discussion :

Réécriture ou redirection vers application Tomcat


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Réécriture ou redirection vers application Tomcat
    Bonjour à tous,

    Je suis en train de mettre en place un serveur Tomcat 6 et un serveur Apache 2 sur la même machine. J'ai suivi ce petit tuto pour faire cela :

    http://damstux.free.fr/wiki/index.ph...ache_et_Tomcat

    Le serveur Apache est dans le site par défaut et j'ai créé un virtualhost sur apache avec l'adresse tomcat.hudson.x2p.fr pour pouvoir contacter directement Tomcat.

    Tout cela marche bien. Si je tape http://debian.hudson.x2p.fr, j'atterris sur le fameux "it's work" d'apache. Si je tape tomcat.hudson.x2p.fr, j'atterris sur la page d'accueil de Tomcat. Je peux également voir les applications Web déjà installés. Elles marchent correctement.

    Ensuite j'ai déployer une application Web Java appelé Jtrac. Dans l'interface d'administration de Tomcat, on peut déployer directement un .war. J'ai donc fait cela et l'application apparait bien dans l'interface d'administration. Si je tape l'adresse http://tomcat.hudson.x2p.fr/jtrac, je suis bien sur l'application que je peux utiliser.

    Ensuite pour une facilité d'utilisation, on voulait faire en sorte que l'adresse http://jtrac.hudson.x2p.fr pointe sur http://tomcat.hudson.x2p.fr/jtrac. Il faudrait en faite toujours garder l'adresse http://jtrac.hudson.x2p.fr et ne pas revenir sur http://tomcat.hudson.x2p.fr/jtrac. C'est plutôt une réécriture qu'une redirection je pense. J'ai donc créé un virtual host sur Apache. Mais c'est là que ça coince. Je n'arrive pas à configurer la réécriture.

    Quand je tape http://jtrac.hudson.x2p.fr, j'ai tout le temps des erreurs. Pour l'instant, j'ai mis une redirection toute bête avec la directive redirect mais dès que l'on se trouve sur la page, l'adresse change en http://tomcat.hudson.x2p.fr/jtrac. Voici le contenu du fichier jtrac.hudson.x2p.fr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <VirtualHost *:80>
     
            ServerName jtrac.hudson.x2p.fr
            Redirect / <a href="http://tomcat.hudson.x2p.fr/jtrac" target="_blank">http://tomcat.hudson.x2p.fr/jtrac</a>
            ErrorLog /var/log/apache2/jtrac.hudson.x2p.fr.local-error.log
            CustomLog /var/log/apache2/jtrac.hudson.x2p.fr.local-access.log common
     
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
                    Order deny,allow
                    Allow from all
            </Directory>
     
            <FilesMatch "\.(inc|txt|tar|gz|zip)$">
                    Deny from all
            </FilesMatch>                  
     
    </VirtualHost>
    Donc voilà merci d'avance pour vos réponses.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Sur ton VH tomcat, comment tu rediriges sur Tomcat ? mod_jk ou mod_proxy ? Il faut a minima reprendre cette conf dans ton nouveau VH. Pour la suite, ça dépend sûrement du mode de communication bien qu'avec mod_rewrite, ça doit marcher à tous les coups. Donc ajoute ceci aussi dans ton VH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !/jtrac
    RewriteRule (.*) /jtrac$1 [L]
    Si ça ne marche pas, essaie d'ajouter PT dans les [] : [L,PT]

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Bonjour et merci pour ta réponse.

    Sur le virtualhost Tomcat, j'utilise la méthode avec mod_proxy. Cela fonctionne très bien car quand je tape tomcat.hudson.x2p.fr, je me retrouve sur la page d'accueil de Tomcat. De plus la communication entre Apache et Tomcat se passe bien car quand je tape tomcat.hudson.x2p.fr, je ne précise pas le port 8080.

    J'ai testé tes directives avec le module Rewrite mais cela ne marche pas. Le navigateur indique une erreur "Not Found" sur l'url /jtrac avec les options L,PT et une erreur "Not Found" sur l'url / avec les options L.

    Voici la configuration de tomcat.hudson.x2p.fr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <VirtualHost *:80>
     
    	ServerName tomcat.hudson.x2p.fr
     
    	LogLevel warn
    	ErrorLog /var/log/apache2/tomcat.hudson.x2p.fr.local-error.log
    	CustomLog /var/log/apache2/tomcat.hudson.x2p.fr.local-access.log common
     
    	<Directory />
    		Options FollowSymLinks
    		AllowOverride None
    		Order deny,allow
    		Allow from all
    	</Directory>
     
    	<FilesMatch "\.(inc|txt|tar|gz|zip)$">
    		Deny from all
    	</FilesMatch>
     
    	ProxyPass / ajp://localhost:8009/
    	ProxyPassReverse / ajp://localhost:8009/
     
    </VirtualHost>
    Si ça peut t'aider, en plus d'ajouter c'est deux virtualhosts, j'ai modifié le fichier proxy.conf situé dans le répertoire /etc/apache2/mods-enabled comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <IfModule mod_proxy.c>
     
            ProxyRequests Off
     
            <Proxy *>
                    AddDefaultCharset off
                    Order deny,allow
                    Allow from all
            </Proxy>
     
            ProxyVia On
    </IfModule>
    J'ai également configuré le fichier /etc/apache2/conf.d/rewrite.conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteLogLevel 3
    RewriteLogLevel /var/log/apache2/rewrite.log
    RewriteCond %{HTTP_USER_AGENT} ^(.*)(java|libwww-perl|libwwwper|snoopy|curl|wget|python|nikto|scan)(.*) [NC,OR]
    RewriteRule %{REQUEST_METHOD} ^(TRACE|TRACK|HEAD|DELETE) [NC]
    RewriteRule .* - [F]
    </IfModule>
    Le module rewrite est bien activé. Voila si ça peut t'aider à y voir plus clair . A+ et merci encore pour le coup de main.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Rebonjour,

    J'ai réussi à obtenir quelque chose de mieux. En effet, j'ai modifié le fichier du virtualhost jtrac.hudson.x2p.fr comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <VirtualHost *:80>
     
            ServerName jtrac.hudson.x2p.fr
     
            ErrorLog /var/log/apache2/jtrac.hudson.x2p.fr.local-error.log
            CustomLog /var/log/apache2/jtrac.hudson.x2p.fr.local-access.log common
     
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
                    Order deny,allow
                    Allow from all
            </Directory>
     
            <FilesMatch "\.(inc|txt|tar|gz|zip)$">
                    Deny from all
            </FilesMatch>
     
            ProxyPass / ajp://localhost:8009/
            ProxyPassReverse / ajp://localhost:8009/
     
            RewriteEngine On
            RewriteRule ^/$ /jtrac [PT]
     
    </VirtualHost>
    Comme tu me l'a conseillé, j'ai repris quelques directives du virtualhost tomcat.hudson.x2p.fr notamment la redirection sur le port 8009. J'ai ensuite ajouté une directive de réécriture.

    En tapant dans un navigateur Web http://jtrac.hudson.x2p.fr, j'arrive bien mon application jtrac qui marche correctement. Le petit problème, c'est que l'adresse se transforme en http://jtrac.hudson.x2p.fr/jtrac. Comment pourrais-je conserver http://jtrac.hudson.x2p.fr en arrivant sur mon application ?

    Merci d'avance.

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    La redirection vient de Tomcat mais je ne sais pas d'où exactement dans Tomcat. A mon avis, il faut modifier la conf RewriteRule et ProxyPass de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            ProxyPass /jtrac ajp://localhost:8009/jtrac
            ProxyPassReverse /jtrac ajp://localhost:8009/jtrac
     
            RewriteEngine On
            RewriteCond %{REQUEST_URI} !^/jtrac
            RewriteRule (.*) /jtrac$1 [PT]
    Soit dit en passant, le Allow from all sur le Directory / est une très mauvaise idée.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'ai essayé tes directives de réécriture et ça me donne la même chose que ce que j'avais avant c'est à dire l'adresse https://jtrac.hudson.x2p.fr et transformer en https://jtrac.hudson.x2p.fr/jtrac. J'ai quand même mon application.

    Voici les logs de la réécriture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (2) init rewrite engine with requested uri /
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (3) applying pattern '(.*)' to uri '/'
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (4) RewriteCond: input='/' pattern='!^/jtrac' => matched
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (2) rewrite '/' -> '/jtrac/'
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (2) forcing '/jtrac/' to get passed through to next API URI-to-filename handler
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (2) init rewrite engine with requested uri /jtrac/app
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (3) applying pattern '(.*)' to uri '/jtrac/app'
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (4) RewriteCond: input='/jtrac/app' pattern='!^/jtrac' => not-matched
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (1) pass through /jtrac/app
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (2) init rewrite engine with requested uri /jtrac/auth/login.htm
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (3) applying pattern '(.*)' to uri '/jtrac/auth/login.htm'
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (4) RewriteCond: input='/jtrac/auth/login.htm' pattern='!^/jtrac' => not-matched
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (1) pass through /jtrac/auth/login.htm
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (2) init rewrite engine with requested uri /jtrac/resources/jtrac.css
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (3) applying pattern '(.*)' to uri '/jtrac/resources/jtrac.css'
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (4) RewriteCond: input='/jtrac/resources/jtrac.css' pattern='!^/jtrac' => not-matched
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (1) pass through /jtrac/resources/jtrac.css
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (2) init rewrite engine with requested uri /jtrac/resources/greyback.jpg
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (3) applying pattern '(.*)' to uri '/jtrac/resources/greyback.jpg'
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (4) RewriteCond: input='/jtrac/resources/greyback.jpg' pattern='!^/jtrac' => not-matched
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (1) pass through /jtrac/resources/greyback.jpg
    Je vais continuer à chercher de mon coté pour enlever ce /jtrac de l'adresse. Merci encore pour le coup de main. A+

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    C'est Tomcat ou l'application qui force la redirection, l'extrait des logs le prouve :
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8260c98/initial] (2) forcing '/jtrac/' to get passed through to next API URI-to-filename handler
    192.168.2.102 - - [14/May/2010:07:39:19 +0200] [jtrac.hudson.x2p.fr/sid#81f6a20][rid#8275590/initial] (2) init rewrite engine with requested uri /jtrac/app
    La première ligne montre bien que seul /jtrac/ est poussé sur Tomcat et la ligne suivante montre que le navigateur revient avec /jtrac/app : ce n'est pas Apache qui redirige le navigateur.

    Tu ne peux rien faire avec Apache. Faut voir côté Tomcat ou appli.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Salut,
    Effectivement comme tu disais, la redirection doit être faite à partir de Tomcat. Dans le fichier server.xml, il faut mapper les applications avec les adresses URL. Apache envoie juste les flux à Tomcat mais ne fait pas de réécriture. En fait, le virtualhost jtrac.hudson.x2p.fr est quasiment pareil que tomcat.hudson.x2p.fr.
    Merci pour ton aide a+

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    J'ai le même problème est ce que vous pouvez m'envoyer le mappage a faire dans tomcat
    merci

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment rediriger apache vers tomcat en mod proxy
    Bonjour;

    J'ai le même souci. Moi j'ai apache2 et tomcat sur la même machine mais je ne sais vraiment pas comment rediriger apache vers tomcat en mode proxy. Si quelqu'un peut m'indiquer un tutorial qui explique la chose, çà me fera très plaisir. Merci d'avance à tous

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

Discussions similaires

  1. redirection vers tomcat
    Par kangourou31 dans le forum Apache
    Réponses: 1
    Dernier message: 19/01/2009, 16h27
  2. [1.x] Redirection vers une application
    Par LordBob dans le forum Symfony
    Réponses: 2
    Dernier message: 01/07/2008, 14h13
  3. [OAS 10g]Import d application tomcat vers oas
    Par 205 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 23/01/2007, 18h16
  4. Tomcat : redirection vers les pages d'erreur Apache
    Par keopsk dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 11/01/2007, 01h57
  5. [Tomcat] session expirée redirection vers une page
    Par Casp dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 19/01/2006, 11h45

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