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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    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
    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]

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    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 averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    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
    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.

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    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+

+ 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