Graham -
At Wed, 27 Feb 2002 06:36:45 +0200, Graham Leggett wrote: > > [1 <text/plain; us-ascii (7bit)>] > Joseph Wayne Norton wrote: > > > In conjunction with mod_rewrite as url filter, I would like to be able > > to use mod_accel as a proxy for only the http request portion of a > > client request and allow for the http response portion to be served > > directly from the backend to the client. This would be useful in > > situations where the response does not (or should not) have to be > > cached by the mod_accel cache. However, I think this type of > > tcp-handoff cannot be performed soley by an application process such > > as apache. Have you a similiar requirement or experience? > > The request and response come after the other on the same connection, so > what you're asking to do is impossible. What exactly are you trying to > achieve? > > If you don't want a response to be cached, use the Pragma: no-cache and > Cache-Control: headers correctly. > Yes, I understand that what I'm asking to do is impossible with the same connection. I'm interested in learning how to build a better web server cluster to support dynamic content (generated by backend servers). I have run across the following paper ... http://www.crpc.rice.edu/softlib/scalableRD.html#papers entitled "Scalable Content-aware Request Distribution ...". I found it to be quite interesting. It presents a scalable method for distributing the operaton of tcp connection and handoff among back-end nodes rather than relying entirely on a centralized node. It also helps solves an issue of trying to keep a single, web client's "session" to being served by a particular back-end node (this helps with cacheing). The paper discusses about having a "Distributor" component and a "Server" component. I have simply been thinking about how this "Distributor" component could be implemented by using apache's mod_rewrite, mod_proxy, and mod_cache modules. The "Server" component would be a backend server that is proxied by mod_proxy (or mod_accel). For dynamic content that has been cached or can be cached, the "Distributor" component would simply send the response back to the client (as mod_proxy does now after talking with the backend). For dynamic content that cannot be cached or doesn't need to be cached, the "Distributor" would implement a form of TCP handoff that would allow the backend to serve the response directly to the client. This later step probably cannot be done without some additional kernel-level module. Anyway, my questions are just ideas right now ... nothing more. > > > mod_proxy is very ancient module and it's hard to maintain it. > > > > > > > Is it possible to integrate apache 2.0's mod_cache with mod_accel > > and/or add mod_accel's features to mod_proxy? > > Mod_proxy is no longer ancient nor hard to maintain, and as far as I am > aware the new mod_proxy does almost everything mod_accel does - if it > doesn't, tell me what's broken and I'll try to fix it. > I haven't spent any time examining the source (or trying to extend) of mod_proxy or mod_accel so I am not able to judge either module. The 2 main points that I picked up from Igor's mail that I'm not sure if mod_proxy supports or not: a. It frees backend as soon as possible. mod_proxy can keep busy backend with slow client, i.e, using mod_proxy to accelerate backend is not worked with slow clients . b. It can use busy locks and limit number of connection to backend. One additional feature that I would like to have with mod_proxy is to have a way to install error_handler documents for all or individual backends. This would allow apache to return a customized error page for individual backends for cases when the backend is not reachable, etc. I hope that I have made myself clear. Any thoughts or comments? Regards, - jn