Bonjour à tous !
Alors voici mon problème.
J'ai un serveur web (dont j'ai un accès ssh root) avec un serv apache + tomcat. Le serveur est dans un sous réseau et n'est accessible que via 1 seule adresse et sur le port 80 (domaine.com:80).
Je ne peu ni créer de sous domaine, ni accéder aux applis tomcat via différents ports.
Mes deux contraintes sont donc :
- Contacter le serveur via http://domaine.com uniquement sur le port 80
- Les applis fonctionnent uniquement sous l'appli ROOT dans tomcat (pb de chemins absolus)
Conf des HOSTS
J'ai deux applis : APP1 et APP2. J'ai créé deux hosts (/etc/hosts) :
Conf de TOMCAT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 127.0.0.1 app1 127.0.0.1 app2 ...
J'ai configuré tomcat de façon a avoir deux hosts correspondants :
serveur.xml :
puis j'ai créé mon arborescence dans conf/Catalina/app1 et conf/Catalina/app2 avec les fichiers de conf (ROOT.xml) correspondants.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <Host name="app1" appBase="webapps/APP1" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> <Host name="app2" appBase="webapps/APP2" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host>
J'ai fait de même dans mon repertoire webapps : j'ai placé les deux applis dans les répertoires webapps/APP1/ROOT/ et webapps/APP2/ROOT.
Conf d'APACHE
Maintenant que Tomcat est bien configuré, je vais configurer apache de manière à pouvoir accéder a mes deux applis via les adresses http://domaine.com/app1 et http://domaine.com/app2.
Je commence donc par activer le mod_jk puis à créer le workers.properties (/etc/apache2/workers.properties) :
puis dans mon vhost *:80 je place les jkMount :
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 ps = / worker.list=app1 app2 worker.app1.port=8009 worker.app1.host=app1 worker.app1.type=ajp13 worker.app1.connection_pool_size=25 worker.app1.connection_pool_minsize=13 worker.app1.connection_pool_timeout=60 worker.app1.socket_keepalive=false worker.app2.port=8009 worker.app2.host=app2 worker.app2.type=ajp13 worker.app2.connection_pool_size=25 worker.app2.connection_pool_minsize=13 worker.app2.connection_pool_timeout=60 worker.app2.socket_keepalive=false #Tuning socket_timeout=30 socket_keepalive=1 recycle_timeout=30 retries=3
FIN DES CONFS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <VirtualHost *:80> ServerName domaine.com JkMount /APP1 app1 JkMount /APP1/* app1 JkMount /APP2 app2 JkMount /APP2/* app2 DocumentRoot /var/www/ </VirtualHost>
Lorsque j'interroge http://domaine.com j'ai bien l'index du documentRoot qui s'affiche --> OK
Lorsque j'interroge http://domaine.com/APP1 le mod_jk j'ai un message d'erreur tomcat me signalant que "La ressource demandée (/APP1) n'est pas disponible." --> PAS OK
(pareil pour APP2)
En faite il contacte bien tomcat, mais, pour app1 il contacte le serveur sur /APP1 (sous le domaine app1) au lieu de contacter le serveur sur / (sous le domaine app1)...
Je ne trouve pas de solution pour résoudre ce problème...
Si je nomme mon appli APP1 (au lieu de ROOT) dans tomcat, bien évidemment ça fonctionne sauf pour tout ce qui est lien absolus, pensez vous que cette solution (si j'arrive à la faire fonctionner) pourrait résoudre le problème ?
Partager