
leus at epublish
Jul 25, 2002, 12:55 PM
Post #5 of 6
(1078 views)
Permalink
|
Steve Fisk wrote: > Leonardo, > > Yes, now I see what you are saying. I had some issues with certain content that > needed to maintain session state, and the users got redirected to another > webserver and the session didn't exist there. That was using the default method > where it is "backhand proxied". > > For the sake of simplicity we decided to go with the "HTTPRedirectToName" method > and just use the front end machine as an initial load balancer, once clients are > redirected to a backend host, they stay there. It is however apparent to the > remote client via the url that he is now on a new server. And if users bookmark > and that host is not in the pool anymore... well you get the idea... [...] I can't use simple redirect, because our servers must be "hidden" from the wild world :-). Actually, it's because of legacy problems, so we must stick to use a single ip address. Rereading a response from Theo, I started doing some research in mod_backhand.c, and I have found that the following sentence is always false in the failing machine: if(inet_aton(bps, &new_in_addr) && matchACL(UDPacl, &r->connection->remote_addr.sin_addr)!=NULL && memcmp(&new_in_addr, &r->connection->remote_addr.sin_addr, sizeof(struct in_addr))) { If I understand this sentence, first is doing inet_aton (which converts an ip address in the form "x.x.x.x" to a number), then calling matchACL. If I understand right, matchACL seeks for a matching ip address in the linked list UDPacl (in order to allow the request, I think) and return a pointer to it, NULL if not found; and then doing a memory comparation between the direction contained in the BackhandProxied header and the remote address... I have splitted this sentence in three, and put log messages. I found that matchACL was returning NULL, because the BackhandProxied contained the _user_ ip address. Sorry for being so... hm, talkative, but this is my first time working with this kind of things (any kind of server), and I'm trying to understand some things. Please correct me: Isn't BackhandProxied supposed to contain the client's ip address? If so, why are matchACL()'ing against this value? Now, there is a lot of stuff that I don't understand. I don't think I understand what means MulticastStats, or Acceptstats... I have a vague idea, but I want to know exactly what they mean. Can anybody point where I can find any definitions of these directives? Sorry for bothering the list with my questions. Regards, -- Leonardo Herrera L. mailto:leus [at] epublish
|