On 14/07/2011 11:39, Tim Watts wrote:
On 14/07/11 11:16, André Warnier wrote:
Hi Andre,
Thanks for the quick reply :)
(That would probably be difficult, inefficient or both)
Assuming that what you say about Tomcat is true (I don't know, and it
may be worth asking this on the Tomcat list), I can think of another way
to achieve what you seem to want :
if you can distinguish, from the request URL (or any other request
property), the requests that are for invariant things, then you could
arrange to /not/ proxy these requests to Tomcat, and serve them directly
from Apache httpd.
Indeed that is a good idea. We are doing that for new projects for css
and js files (apache does not proxy certain paths and picks these up
from the local filesystem).
We can't do that for the 100 odd legacy servers as no-one has time o
delve into the java/JSP code. I need to do something "outside" of
tomcat where possible. Just to explain, each web server is a paid-for
project - and when it's done, it sits there for 5+ years.
Only I have the time/inclination to fix this as it's killing my VMWare
infrastructure. Because the sites are all fronted by apache in a
similar way, one solution is likely to apply to most of the sites.
I would also add that most of the sites are "dynamically" driven
pages, even involving MySQL querying, but once launched, the data
remains fairly static - eg GET X will always resolve to reponse Y.
I'm planning a small seminar on the value of Cache-Control for my dev
colleagues so they can stop making this mistake ;-> But that still
leaves a lot of "done" projects to fix.
Which proxying method exactly are you using between Apache and Tomcat ?
(if you are using mod_proxy, then you are either using mod_proxy_http or
mod_proxy_ajp; you could also consider using mod_jk).
mod_proxy_http specifically.
mod_jk looks interesting for new projects (we have local tomcats for
those now) - I think it may be a non-starter for old stuff as trying
to retro fit it may not be so simple (our older tomcat servers are in
a remote farm on their own machines hence the use of mod_proxy_http).
Shouldn't be an issue you can point the mod_jk to a remote machine - I
do it a lot so that we can push the Tomcat application out through our
templating output filter ... The tomcat produces a plain HTML page with
none of the styling, and this is wrapped using our custom output filter,
I'm guessing at this stage you can do what you want with the script...
James
Also, what are the versions of Apache and Tomcat that you are using ?
Apache 2.2 (various sub versions) and both tomcat 5.5 and tomcat 6
(but all on remote machines listening on TCP sockets).
I think for this problem, I have to treat tomcat as a little, rather
inefficient, black box and try to fixup on the apache front ends,
hence the direction of my original idea...
Cheers,
Tim
--
The Wellcome Trust Sanger Institute is operated by Genome Research
Limited, a charity registered in England with number 1021457 and a
company registered in England with number 2742969, whose registered
office is 215 Euston Road, London, NW1 2BE.