Depending on what you want to cache and if you can easily determine this by different paths.
Assume that all files you want to cache are local files anyway, it might be a good idea to use a rewrite rule to map directly to the files instead of serving them on the tomcat server.
A Squid approach is probably better when you cannot determine which subdirectories contain cachable files (e.g. when they are generated by a servlet)
Another possibility that you may want to evaluate is Varnish to enable caching for more complicated setups.
In any variant, be sure to check that your web application generates proper URLs for redirects and within the html code, otherwise you will get problems when URLs point to the internal name of the proxied servers.
To answer your question, I would suggest evaluating the apache2 approach first.