httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Plüm, Rüdiger, VF-Group <ruediger.pl...@vodafone.com>
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: dev@httpd.apache.org
> 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
> 
> OTOH
> 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
   search.
    
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 
   balancer->sticky[0]=JSESSIONID
   balancer->sticky[1]=NULL 
   balancer->sticky[2]=MYSESSION

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 

   <cite>
   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]
   </cite>

   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?



Regards

Rüdiger

Mime
View raw message