Im currently developing a java web application, and im researching how i should combine different types of technology in order to get the most use of a single webserver.
My plan so far is to have the following architecture setup
Internet ->
Varnish (reverse proxy) ->
Apache2 (mod_pagespeed, mod_jk) ->
Ehcache-web (caching html page fragments,spring-cache) ->
Tomcat (java appsrv) ->
Ehcache (cache layer) ->
MySQL (persistance layer)
Is there any problems with this design? What about scaling and clustering when it comes to that? Is there any other (better) solutions?
Thanks!