httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Plüm, Rüdiger, VF-Group <>
Subject Re: Bug 41897 / Session-Stickiness with mod_proxy_balancer
Date Wed, 04 Apr 2007 08:59:11 GMT

> -----Ursprüngliche Nachricht-----
> Von: Mladen Turk 
> Gesendet: Dienstag, 3. April 2007 17:25
> An:
> Betreff: Re: Bug 41897 / Session-Stickiness with mod_proxy_balancer

> stickysession=JSESSIONID stickysession=;jsessionid 
> stickysession=MYSESSION
> would mean:
> balancer->sticky[0]=JSESSIONID
> balancer->sticky[1]=;jsessionid
> balancer->sticky[2]=MYSESSION
> balancer->sticky_case[0]=1
> balancer->sticky_case[1]=1
> balancer->sticky_case[2]=1
> stickysession="JSESSIONID [c]" stickysession="MYSESSION [E]"
> or perhaps a different notation ...
> stickysession=Cookie:JSESSIONID stickysession=Env:MYSESSION
> would mean:
> balancer->sticky[0]=JSESSIONID
> balancer->sticky[1]=NULL
> balancer->sticky[2]=MYSESSION
> balancer->sticky_case[0]=0
> balancer->sticky_case[1]=-1
> balancer->sticky_case[2]=1

Hm. I am not quite sure if I get your idea right now. So this is what
I understand:

1. You want to change sticky in struct proxy_balancer from
   const char *sticky

   to something like

   const char *sticky[MAX_ENTRIES]

   Additionally you want to add something like

   int sticky_case[MAX_ENTRIES]

   to struct proxy_balancer, right?

2. If balancer->sticky_case[ ] == 1 you want to do a case sensitive search
   whereas if balancer->sticky_case[ ] == 0 you want to do a case insensitive
3. stickysession settings with [C] or [c] are always put in balancer->sticky[0]
   stickysession settings with [P] or [p] are always put in balancer->sticky[1]
   stickysession settings with [E] or [e] are always put in balancer->sticky[2]
   I does not matter in which order you configure this. So 
   stickysession="JSESSIONID [c]" stickysession="MYSESSION [E]" and
   stickysession="MYSESSION [E]" stickysession="JSESSIONID [c]"
   both would result in 

4. You will pass balancer->sticky[0] as the name parameter to get_cookie_param
   and balancer->sticky[1] as the name parameter to get_path_param.

5. What do you do if balancer->sticky[ ] is NULL? Skip the search?

6. You said that 

   In case the params are omitted the behavior would be
   as follows:
   stickysession="JSESSIONID"  -> balancer->sticky-[0]
   stickysession=";jsessionid" -> balancer->sticky-[1]
   stickysession="FOO" -> balancer->sticky-[2]

   Why is FOO stored in balancer->sticky-[2]? Is it because stickysession="FOO"
   is the 3rd occurrence of stickysession for this worker or is it because of
   the name "FOO"?

7. What is the purpose of [E] [e]? Where will you search for balancer->sticky[2]?
   In r->subprocess_env?



View raw message