Apache + Tomcat + ColdFusion + Java

Written on 20 March 2015, 09:24am

Tagged with: , , , ,

Below is a simple ColdFusion application architecture using Apache as web server and Tomcat as JEE application server.

1. Request workflow

Apache: In the Apache configuration file we have a virtual host <VirtualHost host1:80> with DocumentRoot /var/www/theColdFusionApp
Apache receives the request – example:
Hosts file: In /etc/hosts the host host1 is associated with the IP: host1
AJP module: If there is a non-CF request, Apache serves the request itself (ex. html, css, js, image). If there is a CFM request, the AJP module forwards it to Tomcat: ProxyPassMatch ^/(.*\.(cf[cm]|cfml))$ ajp://host1:8080/$1 (Apache config file)
Tomcat has an AJP connector on that port: <Connector port="8080" protocol="AJP/1.3"/>
and an engine to process the requests:

<Engine name="Catalina" defaultHost="host1">
 <Host name="host1"  appBase="webapps">
    <Context path="" docBase="/var/www/theColdFusionApp/"/>

Both entries above are in the Tomcat server.xml config file.
Application folders: In /var/www/theColdFusionApp we have both the CF files (WEB-INF and CFIDE folders) and the actual application folders. More details below.

2. Folder structure and configuration files