Aide - Recherche - Membres - Calendrier
Version complète : [tomcat] - VirtualHosts
Forum Développeur - Administration serveur, programmation et base de données > Techniques et Outils > Administration serveurs
wox-xion
Voilà, j'ai depuis un moment configuré mon application web et la structure est telle :

->serveur apache 2 sur le port 80
->serveur tomcat 5.5 sur le port 8080 (as usual)
->connecteur JK 1.2 pour les transactions

Bas, voici les points importants de ma configuration de JK1.2 :
Citation :
// fichier httpd.conf
...
#
# JK Module Configuration
#
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/httpd/conf/workers.properties
JkLogFile /usr/local/httpd/logs/mod_jk.log
JkLogLevel info
JkShmFile /usr/local/httpd/logs/shm.log
...
...
...
<VirtualHost adresse_ip:80>
ServerAdmin email
DocumentRoot path/to/catalina/webapps/ROOT
ServerName monhost.ext (vais utiliser ça pour les données que je montrerai
CustomLog ...
ScriptAlias ... ...

###
# tomcat configuration
###
JkMount /*.jsp wxc
JkMount /*.do wxc

<Directory path/to/catalina/webapps>
###
# configuration htaccess
###
AllowOverride All
</Directory>

</VirtualHost>


Et puisqu'il le faut :
Citation :
// fichier workers.properties
###
# workers.properties
###
###
# gestionnaire ajp13 pour les connexion entre apache et tomcat
###

# définition
workers.tomcat_home=$(CATALINA_HOME)
workers.java_home=$(JAVA_HOME)
ps=\
worker.list=wxc,balancer

worker.wxc.port=8009
worker.wxc.host=monhost.ext
worker.wxc.type=ajp13

worker.balancer.balance_worker=wxc


Voilà, cela me permet d'utiliser tomcat transmettant ses requêtes à apache.
J'ai mis un worker balancer comme conseillé pour utiliser plusieurs workers différents (car mon but est d'avoir deux virtualhosts travaillant avec apache).

Cependant (ça c'est la config actuelle), j'ai bien essayé d'avoir une deuxième worker, genre
Citation :
worker.list=wxc,wxd,balancer
...
worker.wxd.port=8010
worker.wxd.host=monhost2.ext
worker.wxd.type=ajp13

worker.balancer.balance_worker=wxc,wxd


puis utilisation logique de jk_mount et création du VirtualHost dans httpd.conf, et le nom dans la configuration de bind 9...
bon, bas au final, le VirtualHost marche bien niveau bind 9 et apache 2, car tout est accessible, mais si par contre j'essaie d'accéder à un fichier .jsp, bas j'ai un beau message 200 OK à l'écran :

Citation :
OK

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, email@monhost.ext and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Apache/2.0.53 (Unix) PHP/5.0.4 mod_jk/1.2.10 Server at monhost.ext Port 80


Qu'est-ce qui peut coincer si j'ai parcouru la démarche habituelle, comme si je refaisais mon premier domaine... mais avec les paramètres différents correspondant à monhost.ext, et que j'ai ajouté le balancer ?
wox-xion
aucune idée ? icon_rolleyes.gif

Personne n'a réussi à gérer plusieurs hôtes via tomcat ? en coordination avec apache ? icon_neutral.gif

Voici l'erreur dans le log de jk1.2 :

Citation :
[Sun Sep 11 16:53:28 2005] [info]  jk_handler::mod_jk.c (1952): No body with status=500 for worker=wxc
[Sun Sep 11 20:23:56 2005] [info]  jk_open_socket::jk_connect.c (433): connect to 213.186.58.117:8010 failed with errno=111
[Sun Sep 11 20:23:56 2005] [info]  ajp_connect_to_endpoint::jk_ajp_common.c (877): Failed connecting to tomcat. Tomcat is probably not started or is listening on the wrong host/port (213.186.58.117:8010). Failed errno = 111
[Sun Sep 11 20:23:56 2005] [info]  ajp_send_request::jk_ajp_common.c (1227): Error connecting to the Tomcat process.
[Sun Sep 11 20:23:56 2005] [info]  ajp_service::jk_ajp_common.c (1724): Sending request to tomcat failed,  recoverable operation attempt=1
[Sun Sep 11 20:23:56 2005] [info]  jk_open_socket::jk_connect.c (433): connect to 213.186.58.117:8010 failed with errno=111
[Sun Sep 11 20:23:56 2005] [info]  ajp_connect_to_endpoint::jk_ajp_common.c (877): Failed connecting to tomcat. Tomcat is probably not started or is listening on the wrong host/port (213.186.58.117:8010). Failed errno = 111
[Sun Sep 11 20:23:56 2005] [info]  ajp_send_request::jk_ajp_common.c (1227): Error connecting to the Tomcat process.
[Sun Sep 11 20:23:56 2005] [info]  ajp_service::jk_ajp_common.c (1724): Sending request to tomcat failed,  recoverable operation attempt=2
[Sun Sep 11 20:23:56 2005] [info]  jk_open_socket::jk_connect.c (433): connect to 213.186.58.117:8010 failed with errno=111
[Sun Sep 11 20:23:56 2005] [info]  ajp_connect_to_endpoint::jk_ajp_common.c (877): Failed connecting to tomcat. Tomcat is probably not started or is listening on the wrong host/port (213.186.58.117:8010). Failed errno = 111
[Sun Sep 11 20:23:56 2005] [info]  ajp_send_request::jk_ajp_common.c (1227): Error connecting to the Tomcat process.
[Sun Sep 11 20:23:56 2005] [info]  ajp_service::jk_ajp_common.c (1724): Sending request to tomcat failed,  recoverable operation attempt=3
[Sun Sep 11 20:23:56 2005] [error] ajp_service::jk_ajp_common.c (1733): Error connecting to tomcat. Tomcat is probably not started or is listening on the wrong port. worker=xyn failed
[Sun Sep 11 20:23:56 2005] [info]  jk_handler::mod_jk.c (1975): Service error=0 for worker=xyn


Bon, bas au moins c'est clair que il y a un problème d'écoute sur les ports...
Au passage, j'ai mis le worker wxc sur le port 8009, comme à la base, et vu que je suppose que deux workers ne peuvent pas être sur le même port en même temps, j'ai mis xyn (le nouveau) sur 8010. Mais ça a l'air d'être faux ? Ai-je oublié de le notifier ailleurs genre server.xml de tomcat ?
wox-xion
Bon, bas j'ai mis le port à 8009. Je peux donc utiliser du jsp et des servlet, mais ça ne marche pas réellement. En fait tomcat va chercher les fichiers .jsp et autres servlet dans le répertoire ROOT (celui du worker wxc), c'est donc plus un alias qu'autre chose...
Et donc si j'écris un fichier index.jsp pour le worker wxc, puis que j'en écris un pour xyn, et bien j'aurai beau me promener sur le site de xyn, les fichiers jsp et servlets seront prises depuis wxc... et donc ça marche pas !!!! icon_surprised.gif

Que dois-je faire ?

EDIT : bon, j'ai pas eu de réponse, mais je m'en suis donnée une, et une bonne icon_biggrin.gif
tout simple, je n'avais pas défini plusieurs hosts dans server.xml je_sors.png

C'est quand même complexe, configurer httpd.conf, puis workers.properties, puis le machin shm, puis server.xml... bon, bas ça marche, alors vais pas me plaindre si en plus j'ai pu comprendre un peu mieux comment marchait tomcat (y a encore bcp de boulot, je sais, surtout au niveau du load balancer, j'ai pas vraiment compris son utilisation, donc si quelqu'un voulait bien m'éclairer icon_smile.gif j'en serais très heureux wink.gif )
brunosite

J'avais déjà lu ton post, et je comprenais pas trop trop ton problème, vu que tu te réponds 3 fois c pas terrible terrible... lol

En fait je fait moi j'utilise un kit complet apache tomcat donc je n'ai pas les problèmes que tu as. Ce que je peux te dire c'est que pour faire le mapping, alias... de tes classes vers localhost:8080/lalal/ il faut modifer conf/catalina/localhost les fichiers xml.

c'est ptet complétement à coté mais au moins j'aurais essayé smile.gif
wox-xion
salut, en fait je ne veux pas avoir de port 8080, ça me paraît logique, donc le couple apache - tomcat le permet... je le fais !
En fait je voulais tout simplement définir plusieurs hôtes virtuels pour le nom de domaine... sous apache c'est simple, mais je ne pensais pas à le faire aussi dans le fichier server.xml qui définit les hôtes, car je pensais que apache allait s'en occuper lui-même...

ce qui veut dire que le lien entre apache et tomcat via jk1.2 n'est pas celui que je pensais... je croyais que apache délégait tout simplement les tâches .jsp et autres servlets à tomcat tout simplement, or ce n'est pas si simple... tomcat doit être totalement configuré en parallèle icon_neutral.gif

ps : j'ai supprimé les managers de tomcat par défaut... et je préfère travailler via les fichiers de configuration, ça me paraît bien plus sûr... surtout si le serveur est déjà online wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.