Running Lenya Behind Apache with mod_proxy_ajp
Configuring the AJP Connector in Tomcat
The file $TOMCAT_HOME/conf/server.xml contains an AJP 1.3 connector on port 8009 by default:
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3"/>
If the connector is not present, you have to add it.
Configuring the Apache Web Server
Now we'll declare the virtual hosts for the Apache web server. This is done in a file called httpd-vhosts.conf. On Mac OS X, it is located in the directory /opt/local/apache2/conf/extra. The contents of the file should look like this:
NameVirtualHost *:80
NameVirtualHost *:443
# This is the non-SSL host for the authoring environment.
<VirtualHost *:80>
ServerAdmin webmaster@cms.example.com
ServerName cms.example.com
ServerAlias cms
ProxyRequests Off
RewriteEngine On
RewriteLog /home/john/src/www/logs/cms.example.com-rewrite_log
RewriteLogLevel 4
# Redirect the login usecase to https
RewriteCond %{QUERY_STRING} (.*)lenya\.usecase=ac\.login(.*)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
<Location /lenya/>
ProxyPass ajp://localhost:8009/lenya/
ProxyPassReverse http://cms.example.com/lenya/
</Location>
<Location /modules/>
ProxyPass ajp://localhost:8009/modules/
ProxyPassReverse http://cms.example.com/modules/
</Location>
<Location /default/modules/>
ProxyPass ajp://localhost:8009/default/modules/
ProxyPassReverse http://cms.example.com/default/modules/
</Location>
<Location />
ProxyPass ajp://localhost:8009/default/
ProxyPassReverse http://cms.example.com/default/
</Location>
ErrorLog /home/john/src/www/logs/cms.example.com-error_log
CustomLog /home/john/src/www/logs/cms.example.com-access_log common
</VirtualHost>
# This is the SSL host for the authoring environment.
<VirtualHost *:443>
ServerName cms.example.com
ServerAlias cms
ProxyRequests Off
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /home/john/pki/server.crt
SSLCertificateKeyFile /home/john/pki/server.key
<Location /lenya/>
ProxyPass ajp://localhost:8009/lenya/
ProxyPassReverse https://cms.example.com/lenya/
</Location>
<Location /modules/>
ProxyPass ajp://localhost:8009/modules/
ProxyPassReverse https://cms.example.com/modules/
</Location>
<Location /default/modules/>
ProxyPass ajp://localhost:8009/default/modules/
ProxyPassReverse https://cms.example.com/default/modules/
</Location>
<Location />
ProxyPass ajp://localhost:8009/default/
ProxyPassReverse https://cms.example.com/default/
</Location>
ErrorLog /home/john/src/www/logs/ssl.cms.example.com-error_log
CustomLog /home/john/src/www/logs/ssl.cms.example.com-access_log common
</VirtualHost>
# This is the non-SSL host for the live area.
<VirtualHost *:80>
ServerAdmin webmaster@www.example.com
ServerName www.example.com
ServerAlias www
ProxyRequests Off
<Location />
ProxyPass ajp://localhost:8009/default/live/
ProxyPassReverse http://www.example.com/default/live/
</Location>
ErrorLog /home/john/src/www/logs/www.example.com-error_log
CustomLog /home/john/src/www/logs/www.example.com-access_log common
</VirtualHost>




