Apache vhost + proxy clamping revisited
Found a simple solution to the requirement in my last post:
In order to let apache proxy all requests to a backend-server but also serve some static files from a url-alias, this will be sufficient:
<VirtualHost 11.22.33.44:80>
ServerName www.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
RewriteEngine On
RewriteRule ^/static/(.*) /path/to/static/files/$1 [QSA,L]
</VirtualHost>
No need to let apache listen on another localhost-port and act as proxy front- and backendserver the same time. This is much easier…
The revisited and much nicer apache configuration looks like this:
Apache 11.22.33.44:80
|-----> /static/* served by apache itself from /path/to/static/files/
|-----> /*
|----> Tomcat 127.0.0.1:8080 application server
The mistake i made in the first place was not to rewrite requests to /static/* to a local folder which apache could serve but to proxy those requests to another apache backend-server which was configured to serve such static files only.
Lesson learned: apache2-mod-rewrite as swiss-army-knife for the rescue.