home | snippets | apache configuration
For a simple server, such as a living-room Internet server, it is often desirable to run multiple HTTP services on the one machine. In my case, the web server is Apache, and I want to different parts of my site (goverend by path) processed by different HTTP services (Apache, Tomcat, IIS).
For Apache 1.3.27, uncomment these lines:
AddModule mod_rewrite.c
AddModule mod_proxy.c
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
Later, either within a virtual host entry or the main host entry, add your re-writing logic.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteLog "logs/rewrite_log"
RewriteLogLevel 0
RewriteRule ^/gallery(.*) http://drewnoakes.com:8080/gallery$1 [P]
RewriteRule ^/aspx(.*) http://drewnoakes.com:8090$1 [P, L]
</IfModule>
This redirects all traffic matching /gallery to a Tomcat web-app 'gallery', where Tomcat is running on port 8080. Similarly, any requests matching /aspx are redirected to IIS, which runs on port 8090.
With this setup, both Tomcat and Apache run on ports which are blocked by the firewall.