Mod proxy ajp

From WeWeWeb Wiki
Jump to: navigation, search

How to configure mod_proxy_ajp with Tomcat ?

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 can gain a lot of flexibility (lot of the apache modules/features can be used especially "name-based virtual hosting")
  • Practical for those who need to support Java applications along with PHP / Perl … (only one apache server is needed)
  • Certificates management is easier in apache configuration (this argument is a lot subjective)
  • It's not Tomcat's main objective to serve http static resources (not optimized for that)
  • Load balancing/cluster management is easier with an apache frontend

Tomcat configuration

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" />

Apache2 configuration

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>


References

  1. http://tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html
  2. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

Back to Tomcat