Re: HTTPRedirectoToName
Rob Bloodgood <[email protected]> Wed, 25 Jan 2006 17:30:43 -0800
| Newsgroups | gmane.comp.apache.mod-backhand.general |
|---|---|
| Message-ID | <[email protected]> |
Rob Bloodgood wrote: >>> I have count1, count3, count4 boxen in my backhand cluster. count1 is >>> the "main" box that I'm trying to load balance. I want count1 to >>> redirect requests over to count3/count4 based on load, etc. So I have: >>> >>> <LocationMatch "/backhanded/.+"> >>> >>> Backhand byAge 2 >>> # Backhand removeSelf >>> Backhand byLoad >>> >>> Backhand HTTPRedirectToName %1S.%1H >>> >>> # Backhand HTTPRedirectToIP >>> BackhandLogLevel +netall,+mbcsall,+dcsnall >>> # BackhandLogLevel +dcsnall >>> </LocationMatch> >>> >>> Now, looking at the surface, this should work great. However: >>> >>> [Wed Jan 25 13:42:31 2006] [notice] Func executed for (null) >>> [HTTPRedirectToName(%1S.%1H)] (3 -> 0) >>> [Wed Jan 25 13:42:31 2006] [notice] New server list: [ ] >>> [Wed Jan 25 13:42:31 2006] [notice] All funcs executed -> local >>> ... >>> It falls off and prevents doing anything useful before the actual, >>> desired behavior: pick a host that's not me (if conditions are met) and >>> redirect to it (instead of proxying). >>> >>> Have I completely missed the point of this directive, or used it wrong? >>> >> Not missed the point. It prevents the possiblity of an d enless set of >> redirects. where you just bounce back and forth all the time. >> >> The goal is to go to www.exmaple.com and then have that be no-one's >> hostname. The three hostnames are www.de.exmaple.com, >> www.us.example.com and www.jp.exmaple.com. Once you hit >> www.XX.exmaple.com, that logic will prevent you from yet again being >> redirected. >> >> Perhaps you already figured that out, I misunderstood and there is a >> bug? Certainly possible. It is one of the least used features in >> mod_backhand. OK, there was a missing piece to my story. The host named count1 is actually named count, and I was "getting to it" to name it count1. Well, I thought about that. The server that I'm renaming to count1 is getting all its hits with the Host: count.example.com. So if I change the apache config so that the local server name is count1, then I have a chance at the redirect logic letting me through. So I tried it. at first, I was disappointed again. but I had played with my module loading order a little bit, since I had thought about that while composing my earlier message. I had moved mod_perl.c and mod_backhand.c to be the first two modules in the list. Since I was having issues, I reversed that step, placed those two AddModule directives back at the end of the list, and it started working! *AND*, my supposition was correct! changing the internal server name to count1 when the incoming Host: headers all say count.domain.com made redirection start working for me. Unfortunately... that does mean that I end up with one additional redirect for requests I handle "myself" (where redirects to count1 happen to be the same box as the "Host: count"). But that should be pretty painless in terms of load. Comments? L8r, Rob