mod_proxy_ajp
is an Apache module which can be used to forward a client HTTP request to an internal Tomcat application server using the AJP protocol.
To respond to the question "Why should I use mod_proxy_ajp rather than a classic mod_proxy ?", here is a small recap:
You just have to create the AJP connector in the conf/server.xml
file like that:
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
This line will enable AJP connections to the 8009 port of your tomcat server (localhost for example).
One way (useful if this apache is a global front end) is to create a virtual host for this application.
Listen 1979 NameVirtualHost *:1979 <VirtualHost *:1979> ServerName localhost ErrorLog /var/log/apache2/ajp.error.log CustomLog /var/log/apache2/ajp.log combined <Proxy *> AddDefaultCharset Off Order deny,allow Allow from all </Proxy> ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ </VirtualHost>
ProxyPass
and ProxyPassReverse
are classic reverse proxy directives used to forward the stream to another location.ajp://...
is the AJP connector location (your tomcat's server host/port)
A web client will connect through HTTP to http://localhost:1979/ (supposing your apache2 server is running on localhost), the mod_proxy_ajp will forward you request transparently using the AJP protocol to the tomcat application server on localhost:8009
.