2009-06-30 7 views
1

Nous avons une situation existante où nous avons Apache 2.0 HTTPD agissant comme l'équilibreur de charge pour un groupe de tomcats backend, en utilisant mod_jk 1.2 pour communiquer entre les deux. Les applications elles-mêmes sont stockés sur les serveurs tomcat, et donc toutes les demandes sont passées à travers (même les images, css, etc.) à tomcat, en utilisant ce qui suit dans les configs hôte virtuel:Comment est-ce que je desserve des modèles de chemin de DocumentRoot, et d'autres de modjk?

JkMount /* worker-name 

Les hôtes virtuels ne sont pas un DocumentRoot défini, car tout le trafic descend le tuyau vers Tomcat.

Nous aimerions commencer à diffuser du contenu statique directement à partir d'Apache (une idée radicale, je sais). Compte tenu de la structure de notre chemin d'application, la seule façon de distinguer le contenu statique du contenu dynamique est l'extension du chemin demandé. Ainsi, par exemple, toutes les requêtes se terminant par .jpg, .css, .ico, etc. ne seront pas transmises via JkMount, mais servies à partir d'un DocumentRoot.

Voilà le contexte. Ma question est, comment puis-je confgiure le vhost afin que toutes les demandes qui correspondent à un modèle donné (en particulier, mon modèle de ce que nous voulons être servi à partir d'apache) sont servis à partir de DocumentRoot, et tous les autres passés à tomcat?

Est-ce que cela peut être fait avec une regex en JkMount? Est-ce que JkMount est aussi flexible? Si non, puis-je utiliser mod_rewrite?

+0

Il me semble que cela pourrait être vu comme plus de matériel serverfault.com, mais comme cela est étroitement couplé à la structure de chemin d'application existante, je l'ai mis ici. – skaffman

Répondre

4

Vous pouvez utiliser JkUnMount pour indiquer que certaines requêtes ne sont pas gérées par mod_jk. J'ai vu des exemples utilisant des extensions de fichiers et les chemins:

JkMount /* worker-name 
JkUnMount /*.jpg worker-name 
JkUnMount /images/* worker-name 

Voir here pour plus d'informations.

+0

En fin de compte, j'ai décidé d'utiliser la variable d'environnement no-jk, que j'ai lu sur le lien que vous avez fourni, donc je vais prendre votre réponse, merci :) – skaffman