Hi, First of all I would like to mention that this is my first post on this list, I hope that this question is posted in the right place. I have tried finding a solution for my problem, but it either doesn't exist, or my limited brain can't manage to figure out how to do it (I strongly hope it is the latter). My issue is with the mod_jk plugin. I want to redirect my subdomain requests jira.example.com to a tomcat 6 virtual host called jiraapp. If I call the subdomain jira.example.com Im always getting the default tomcat 6 host called localhost. I tested every part: 1.) mod_jk: if i change the workers name in either workers.properties or under my enabled-site <VirtualHost> or if i change the mapping to my virtual host (/etc/hosts: 127.0.0.1 localhost jiraapp) apache doesnt start. 2.) if I do a lynx jiraapp:8080 on the machine it works and shows the right webapp. But if I access jira.example.com I always getting the default root-webapp of tomcat 6. So theres no difference in calling jira.example.com or example.com:8080. My conclusion is that I sucessfully set up mod_jk, apache2 virtual hosts (for the subdomain) and tomcat virtual hosts, because everything works fine if tested alone. But if I try to use everything together and remotely it doesnt work. Help would be appreciated. Versions: Apache Tomcat/6.0.29 Sun-Java 1.6.0_20-b02 Apache/2.2.9 (Debian) mod_jk/1.2.26 proxy_html/3.0.0 Server libapache2-mod-jk 1:1.2.26-2+lenny1 == jk.load == LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so JkWorkersFile /etc/apache2/workers.properties JkLogFile /var/log/apache2/mod_jk.log JkLogLevel info # JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories -ForwardLocalAddress JkRequestLogFormat "%w %V %T" Code (markup): == workers.properties == workers.tomcat_home=/opt/tomcat workers.java_home=/usr/lib/jvm/java-6-sun worker.list=jiraworker worker.jiraworker.port=8009 worker.jiraworker.host=jiraapp worker.jiraworker.type=ajp13 Code (markup): == /etc/hosts == ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 127.0.0.1 localhost.localdomain localhost jiraapp Code (markup): == server.xml === <Engine name="Catalina" defaultHost="localhost"> [...] <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> [...] </Host> <Host name="jiraapp" appBase="jiraapp" docBase="/opt/tomcat/jiraapp" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" > Code (markup):
Sorry i forgot to post the apache example.com virtual hosts config: <VirtualHost *:80> ServerName www.jira.example.com ServerAlias jira.example.com JkMount /* jiraworker </VirtualHost> Code (markup): In general my setup looks like this 1.) browse to jira.example.com 2.) apache <VirtualHost> hands over to mod_jk 3.) mod_jk redirects to worker.jiraworker.host:worker.jiraworker.port (jiraapp:8009) via ajp 4.) jiraapp resolves to 127.0.0.1 trough /etc/hosts 5.) tomcat relays to the jiraapp name based virtual host Do I miss something here? My guess would be that iam doing something wrong in step 4) because i can call lynx jiraapp on the local bash (5) and i can access the default virtual host from remote (1-3).
Thanks to the tomcat mailinglist I found a solution. The issue here is, that mod_jk doesnt change the hostname of the original request. I only had to rename the virtual host of tomcat to jira.example.com instead of jiraapp and change the other configurations accordingly and now its working like a charm!