* released 1.1.10
* if a cookie is used in insert+indirect mode, it's desirable that the the servers don't see it. It was not possible to remove it correctly with regexps, so now it's removed automatically.
This commit is contained in:
parent
c29948c439
commit
96d4037194
10
NOTES
10
NOTES
@ -16,12 +16,6 @@
|
||||
- differentiate http headers and http uris
|
||||
- support environment variables in config file
|
||||
- support keep-alive
|
||||
|
||||
--- Notes about cookie usage ---
|
||||
|
||||
Cookie insertion is done at the end of server response.
|
||||
Cookie matching is done after header replacement, but before
|
||||
header deletion. This means that it's perfectly possible to
|
||||
delete an inserted cookie once it has been matched, so that
|
||||
the server never knows about it.
|
||||
1.1.9 -> 1.1.10
|
||||
- automatically remove client cookie in insert+indirect mode
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
|
||||
H A - P r o x y
|
||||
---------------
|
||||
version 1.1.9
|
||||
version 1.1.10
|
||||
willy tarreau
|
||||
2002/05/02
|
||||
2002/05/10
|
||||
|
||||
================
|
||||
| Introduction |
|
||||
@ -455,12 +455,14 @@ serveurs aient un cookie renseign
|
||||
|
||||
cookie SERVERID insert
|
||||
|
||||
Remarque :
|
||||
----------
|
||||
Il est possible de combiner 'insert' avec 'indirect' ou 'rewrite' pour s'adapter
|
||||
à des applications générant déjà le cookie, avec un contenu invalide. Il suffit
|
||||
pour cela de les spécifier sur la même ligne.
|
||||
|
||||
Remarques :
|
||||
-----------
|
||||
- Il est possible de combiner 'insert' avec 'indirect' ou 'rewrite' pour s'adapter
|
||||
à des applications générant déjà le cookie, avec un contenu invalide. Il suffit
|
||||
pour cela de les spécifier sur la même ligne.
|
||||
- dans le cas où 'insert' et 'indirect' sont spécifiés, le cookie n'est jamais
|
||||
transmis au serveur vu qu'il n'en a pas connaissance et ne pourrait pas le
|
||||
comprendre.
|
||||
|
||||
2.9) Assignation d'un serveur à une valeur de cookie
|
||||
----------------------------------------------------
|
||||
@ -533,7 +535,8 @@ Exemples :
|
||||
server web1 192.168.1.1:80 cookie server01 check
|
||||
server web2 192.168.1.2:80 cookie server02 check inter 500 rise 1 fall 2
|
||||
|
||||
# insertion automatique de cookie dans la réponse du serveur
|
||||
# Insertion automatique de cookie dans la réponse du serveur, et suppression
|
||||
# automatique dans la requête.
|
||||
listen web_appl 0.0.0.0:80
|
||||
mode http
|
||||
cookie SERVERID insert indirect
|
||||
@ -728,9 +731,9 @@ Exemples :
|
||||
La combinaison de l'insertion de cookie avec la répartition de charge interne
|
||||
permet d'assurer une persistence dans les sessions HTTP d'une manière
|
||||
pratiquement transparente pour les applications. Le principe est simple :
|
||||
- assigner un cookie à chaque serveur
|
||||
- attribuer une valeur d'un cookie à chaque serveur
|
||||
- effectuer une répartition interne
|
||||
- insérer un cookie dans les réponses issues d'une répartition
|
||||
- insérer un cookie dans les réponses issues d'une répartition uniquement
|
||||
- cacher ce cookie à l'application
|
||||
|
||||
Exemple :
|
||||
@ -741,7 +744,6 @@ Exemple :
|
||||
balance roundrobin
|
||||
server 192.168.1.1:80 cookie server01 check
|
||||
server 192.168.1.2:80 cookie server02 check
|
||||
reqidel ^Cookie:\ SERVERID=
|
||||
|
||||
=======================
|
||||
| Paramétrage système |
|
||||
|
@ -62,7 +62,7 @@ listen proxy1 0.0.0.0:8000
|
||||
option httplog
|
||||
option dontlognull
|
||||
# reqirep ^(Test:\ ) \0_toto_\1_toto
|
||||
# reqidel ^Cookie:\ SERVERID=
|
||||
# reqidel ^X-Forwarded-for:
|
||||
# reqirep ^(GET|POST)\ .* \0
|
||||
# reqirep ^(Host:|Connection:|User-agent:|Cookie:)\ .* \0
|
||||
# reqideny ^
|
||||
|
@ -17,6 +17,10 @@
|
||||
*
|
||||
* ChangeLog :
|
||||
*
|
||||
* 2002/05/10 : 1.1.10
|
||||
* - if a cookie is used in insert+indirect mode, it's desirable that the
|
||||
* the servers don't see it. It was not possible to remove it correctly
|
||||
* with regexps, so now it's removed automatically.
|
||||
* 2002/04/19 : 1.1.9
|
||||
* - don't use snprintf()'s return value as an end of message since it may
|
||||
* be larger. This caused bus errors and segfaults in internal libc's
|
||||
@ -2300,6 +2304,11 @@ int process_cli(struct session *t) {
|
||||
if (srv) { /* we found the server */
|
||||
t->flags |= SN_DIRECT;
|
||||
t->srv = srv;
|
||||
/* if this cookie was set in insert+indirect mode, then it's better that the
|
||||
* server never sees it.
|
||||
*/
|
||||
if ((t->proxy->options & (PR_O_COOK_INS | PR_O_COOK_IND)) == (PR_O_COOK_INS | PR_O_COOK_IND))
|
||||
delete_header = 1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user