httpd-wiki-changes mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Httpd Wiki] Update of "Recipies/TomcatModProxyHTML" by pctony
Date Mon, 16 Oct 2006 23:44:44 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change notification.

The following page has been changed by pctony:

The comment on the change is:
copied from ebp-moin

New page:
(!) Formatting need's work (!)

= Fixing broken links when using a reverse proxy to Tomcat =

In this How-To guide, we will show you how to fix broken links when using a [:HTTPDocsWiki/recipies/TomcatReverseProxy:reverse
proxy] between your Apache webserver and your Tomcat server.

=== Prerequisites ===

For this you are going to need the following

||mod_proxy_html|| |||| ||mod_proxy_html
to fix hyperlinks.||
||libxml2|| |||| ||Needed by mod_proxy_html. Should be included in most,
if not all, Linux distributions.||

'''mod_proxy_html''' directives can be used in following contexts - server config, virtual
host, and in '''<Location>'''. The examples below will be in the server config context
as well as pertain to Apache that has been compiled with the source package from

To fix the links in Tomcat pages, we are using mod_proxy_html. This is necessary for proxied
pages that use links that are resolved with a URI path or with an absolute URL.

{{{<a href="/somefile">
<a href="">

Links in proxied pages that are set up in the manner above will not work. The first will resolve
to http://localhost/somefile which is incorrect compared to the way the [:HTTPDocsWiki/recipies/TomcatReverseProxy:reverse
proxy] to Tomcat was set up. To correctly resolve '''somefile''', the link would need to use
http://localhost/webapps/somefile. The second link example will yield a "No such server" error
for the browser. This also affects images and other resources linked this way on the proxied
page. Thus the need to fix these link types with mod_proxy_html.

If you can guarantee that all your links will be of the form:

{{{<a href="somefile">

then using mod_proxy_html '''will not''' be necessary. Although, for Tomcat, the management
page will contain bad URIs.

Since mod_proxy_html is not included in the Apache package, you need to either download and
compile it or get your distro's package, if available. To compile it, we use the '''apxs'''
binary that comes with the Apache package.

{{{/path/to/apxs -cia -I/path/to/include/libxml2 mod_proxy_html.c

'''/path/to/''' is the path to where apxs and your libxml2 header files are at. You only need
to specify the '''-I/path/to/include/libxml2''' if the libxml2 header files are not in a standard
location. Using the apxs command will compile and build the module. It will also put in the
correct '''!LoadModule''' in httpd.conf:

{{{LoadModule proxy_html_module  modules/

With the module compiled, built and loaded, we can now use mod_proxy_html to fix links. To
use the mod_proxy_html directives, you need to make sure that if '''<!IfModule mime_module>'''
is being used, then you must put the directives in that '''<!IfModule>''' block. If
this block isn't being used, then you can put the directives anywhere in your server configuration
file. The Tomcat management page will be used in the following example.

{{{# Fix mod_proxy urls.
SetOutputFilter proxy-html
ProxyHTMLURLMap ^/(.*)$ /webapps/$1 R

As you can see from the example above, mod_proxy_html can use regular expressions to do its
matching which is denoted by the 'R' at the end of the ProxyHTMLURLMap lines. You can check
the management page by accessing http://localhost/webapps and clicking the '''Tomcat Manager'''
link (http://localhost/webapps/manager/html). Click on the links on this page and you will
see that all the links resolve correctly. If we didn't fix the links, then all the links on
Tomcat's management page will yield 404 errors from the browser.

For more complete information on mod_proxy_html, visit Nick Kew's [
mod_proxy_html page].

View raw message