Hi,

Thanks a million for guiding me through these hoops, and your patience with my confused anxiety to get this sorted out. It now works (of course) with these settings, and allows for a quite nice compromise. I'll briefly summarize problem and solution, if it can help others.

The starting point was that I needed to reverse proxy Tomcat webapps behind Apache, with the Tomcat running on a non-public port. Additionally, some Tomcat apps need access to the host name of the original request, in order to generate working links. In order to avoid the problem that the proxied Tomcat doesn't 'see' the 'proxy' prefix of the original request, I decided to mirror that prefix for my Tomcat apps as well, and settle for following Apache proxy configuration:

  ProxyPreserveHost    on
  ProxyPass/apps/     http://localhost:8082/apps/
  ProxyPassReverse/apps/     http://mydomain/apps/

(note: the proxy domain in the second argument of ProxyPassReverse makes sure that location headers for redirects by the Tomcat apps are rewritten correctly by mod_proxy).

Therefore, the Tomcat apps must be made accessible at e.g. http://localhost:8082/apps/my_app/, with the /app/ prefix before the actual name of the web app. This can be done easily by renaming the physical folder or WAR filename containing the web app, by adding the prefix, followed by a hash character (#) before the actual name of the application, e.g.: F:\tomcatApps\apps#my_app. This works well, except for Cocoon-based web apps, which choke on the hash in the filename. Hence, for those apps, following configuration provides a workaround: 1. move the folder or WAR file containing the web app outside of the host's appBase path, e.g.: F:\cocoonApps\my_app 2. add a file ${catalina.base}\conf\Catalina\[host name]\[prefix]#[app name].xml, e.g.: ${catalina.base}\conf\Catalina\localhost\apps#my_app.xml, with following content:

    <Context docBase="F:/cocoonApps/my_app"/>

No further modifications of ${catalina.base}\conf\server.xml are needed.

Again, thanks for the great help!

Ron

Reply via email to