RE: modproxy load balancer
"Hildenbrand, Patrick" <[email protected]> Wed, 18 Jun 2003 09:04:30 +0200
| Newsgroups | gmane.comp.apache.mod-proxy |
|---|---|
| Message-ID | <[email protected]> |
Hi, I would also be more than interested and I guess much more ppl not reading this list, especially those using mod_rewrite as a reverse proxy. Some more input - load balancing algorithm: please add: priority driven by external function (can be file input, ...., timeout for refresh should be configurable) (we have some functions to determine the internal system load, we could query). If mod_backhand would be used, this should already work (at least as far as I understood the docs) - automatic detection: until server refresh or until external function signals somehow else, that the server is up again. (some systems will be connectable even though they are malfunctioning, how can we remove them ?) - doing routing decisions on URL basis would be great, as this would support Apache based Reverse proxy setups the best. Session persistency would be a must though, as some others have stated already. Session persistency could be based on - based on a cookie, mod_proxy sets (cookie injection) - based on rewriting the URL to the browser (mod_proxy would need to remove the additional stuff prior connecting to the backend - based on a cookie or other content in the DataStream (something which got set by the backend) based on IP only is not the best solution, as for large companies, a lot of their users will come from their proxies IP address. Doing this, the session would allow us to keep it's state based on information given to mod_proxy by the browser itself (this is a common setup for commercial loadbalancers). Especially cookie injection and URL rewriting would be of interest I guess, as these would not require internal session tables for persistency. You could use a per server token for the mapping, thus immediatly forwarding the request to the right server. It would only be tricky to support url based balancing with this setup. At a later point it would be great, if session persistency could also be limited to certain URL's only. Stuff like graphics often can be retrieved from any backend server. I'm not quite sure, whether mixing loadbalancing into mod_rewrite will help like Eli Manor suggested. We use mod_rewrite to limit access to backend systems, mixing these config directives with the LB setup would probably be even more confusing. I'm in favor of a separate set of directives as you suggested. BTW: to my knowledge mod_backhand does not currently support apache 2.0 only 1.x, at least based on the FAQ section http://www.backhand.org/mod_backhand/FAQ.shtml#question0. Theo Schlossnagel should be the expert to this matters maybe he can shed some light on this. Kind regards, Patrick Hildenbrand Any views or opinions presented in this email are solely mine and do not necessarily represent those of my company. -----Original Message----- From: Bill Stoddard [mailto:[email protected]] Sent: Freitag, 13. Juni 2003 16:29 To: [email protected] Subject: modproxy load balancer Ping to all list citizens (listizens?) ... Who would be interested in seeing some load balancing function being put into mod_proxy? Anyone given any though on what you would like to see or maybe even have a design proposal you'd like to discuss? My short requirements list: - selectable load balancing algorithm: Round robin, LRU, response time, url driven, session affinity, ? - automatic detection of backend server failure and removal of the failed server from the load balancing routing tables (forever? for a period of time? other?) - connection pooling using HTTP keep-alive (this is a no brainer since it is a simple extension of what browsers already do, but it needs to be designed in from the start) - must be effective with multiple child processes, each child must make routing decisions globally based on stats maintained in a shared memory segment To do this properly, I would think we need some new config directives. Perhaps a new container directive to define a group of backend servers, another container directive to define URLs served by a particular group of backend servers. Need some way to bind a url group to a server group. Bill