4 votes

Apache & JBoss utilisent le port 80 en même temps

J'ai Apache 2 et JBoss 4.2.3 sur la même machine et je voudrais qu'ils utilisent tous deux le port 80. Il y a plusieurs façons de procéder : mod_jk, mod_proxy, mais je ne sais pas laquelle est la meilleure.

Je n'ai pas besoin d'équilibrage de charge, mais j'ai besoin de HTTPS.

7voto

Lloyd Meinholz Points 1520

Vous ne pouvez pas avoir deux applications qui écoutent le même port tcp (80) en même temps. Vous pouvez utiliser mod_jk pour que les requêtes http sur le port 80 soient acheminées du serveur Apache vers le serveur JBoss. C'est la méthode que je connais le mieux et que je préfère. mod_proxy devrait également fonctionner, mais je trouve cette méthode un peu plus compliquée.

La configuration de https sur Apache est probablement mieux traitée dans un sujet séparé. Il y a des problèmes avec l'achat d'un certificat SSL, la création d'un certificat auto-signé, etc.

La configuration de mod_jk pour acheminer les requêtes du serveur Apache vers le serveur JBoss se fait en deux étapes :

Configurez le serveur web Apache pour qu'il transmette certaines requêtes au serveur JBoss.

La configuration d'Apache varie en fonction de la distribution d'Apache que vous utilisez (Windows, RHEL, debian, construit à partir des sources, etc.) mais les concepts devraient être similaires pour toute installation d'Apache.

Vous devez télécharger mod_jk pour votre plateforme depuis le site web de tomcat :
http://tomcat.apache.org/download-connectors.cgi
Le fournisseur de votre système d'exploitation peut vous fournir un binaire, alors vérifiez d'abord auprès de lui. Vous pouvez également compiler mod_jk vous-même si vous le préférez.

Copiez le binaire mod_jk (mod_jk.so pour les systèmes Linux/UNIX, pas sûr pour Windows) dans le répertoire des modules de vos serveurs Apache (cela dépend de la distribution Apache que vous utilisez).

Ajoutez la directive équivalente à votre configuration Apache :

LoadModule jk\_module /usr/lib/apache2/modules/mod\_jk.so

Vous devez ajouter deux fichiers de configuration au répertoire de configuration d'Apache : mod_jk.conf et workers.properties. Vous devez inclure mod_jk.conf dans le fichier de configuration principal d'Apache :

Include /etc/apache2/mod\_jk.conf

Le fichier workers.properties est inclus par mod_jk.conf avec la directive JkWorkersFile.

Des paramètres plus détaillés pour mod_jk.conf sont disponibles sur la page de documentation de tomcat :
http://tomcat.apache.org/connectors-doc/reference/apache.html

Les directives importantes sont :
JkWorkersFile (spécifie où se trouve le fichier workers.properties)
JkMount (point de montage pour le mappage de l'URI au travailleur de tomcat)

Un exemple :

JkWorkersFile /etc/apache2/workers.properties<br>
JkMount  /examples/*  myworker<br>
JkMount  /examples    myworker

Ces directives font correspondre les URI /examples et /examples/ au travailleur tomcat myworker.

D'un point de vue conceptuel, on peut considérer qu'un worker représente une instance de Tomcat ou de JBoss et que le mount est un moyen de faire correspondre un URI à un worker. Cette façon de représenter les choses permet à un serveur Apache d'être le frontal de plusieurs serveurs tomcat ou JBoss. Cela peut être pratique si vous n'avez qu'une seule adresse IP que vous pouvez utiliser mais que vous souhaitez faire tourner plusieurs serveurs d'applications derrière un seul serveur Apache.

Les fichiers workers.properties décrivent le ou les serveurs tomcat ou JBoss auxquels le serveur Apache se connectera. Les entrées importantes de ce fichier sont :

worker.list=myworker<br>
worker.tomcat.type=ajp13<br>
worker.tomcat.host=localhost<br>
worker.tomcat.port=8009

Il existe d'autres propriétés des travailleurs qui peuvent être trouvées dans la page de documentation de tomcat pour le fichier workers.properties :
http://tomcat.apache.org/connectors-doc/reference/workers.html

Configurez le serveur JBoss pour qu'il accepte les connexions du serveur Apache.

Le serveur JBoss est configuré pour accepter les connexions mod_jk sur le port 8009 (le port ajp par défaut), mais il est bon de savoir où le configurer au cas où vous voudriez le modifier à l'avenir.

La configuration se trouve dans la partie basée sur Tomcat du serveur JBoss, dans le fichier ${JBOSS_SERVER_CONFIGURATION}/deploy/jbossweb.sar/server.xml. Ceci est pour JBoss AS 5.1.0.GA, les versions précédentes se trouvent dans un emplacement similaire. Le connecteur mod_jk est configuré dans la section Connecteur pour le protocole AJP 1.3 et ressemble à ceci :

<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"    redirectPort="8443" />

La raison la plus courante pour modifier cette section est que si vous avez plusieurs serveurs Tomcat ou JBoss se connectant à Apache via le protocole AJP, vous pouvez ajuster le numéro de port sur lequel le connecteur AJP écoutera afin qu'il n'y ait pas de conflits.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X