"Fossies" - the Fresh Open Source Software Archive

Member "haproxy-2.0.0/doc/design-thoughts/be-fe-changes.txt" (16 Jun 2019, 2714 Bytes) of package /linux/misc/haproxy-2.0.0.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 - PR_O_TRANSP => FE  !!! devra peut-être changer vu que c'est un complément du mode dispatch.
    2 - PR_O_NULLNOLOG => FE
    3 - PR_O_HTTP_CLOSE => FE. !!! mettre BE aussi !!!
    4 - PR_O_TCP_CLI_KA => FE
    5 
    6 - PR_O_FWDFOR => BE.  FE aussi ?
    7 - PR_O_FORCE_CLO => BE
    8 - PR_O_PERSIST => BE
    9 - PR_O_COOK_RW, PR_O_COOK_INS, PR_O_COOK_PFX, PR_O_COOK_POST => BE
   10 - PR_O_COOK_NOC, PR_O_COOK_IND => BE
   11 - PR_O_ABRT_CLOSE => BE
   12 - PR_O_REDISP => BE
   13 - PR_O_BALANCE, PR_O_BALANCE_RR, PR_O_BALANCE_SH => BE
   14 - PR_O_CHK_CACHE => BE
   15 - PR_O_TCP_SRV_KA => BE
   16 - PR_O_BIND_SRC => BE
   17 - PR_O_TPXY_MASK => BE
   18 
   19 
   20 - PR_MODE_TCP : BE côté serveur, FE côté client
   21 
   22 - nbconn -> fe->nbconn, be->nbconn.
   23   Pb: rendre impossible le fait que (fe == be) avant de faire ça,
   24   sinon on va compter les connexions en double. Ce ne sera possible
   25   que lorsque les FE et BE seront des entités distinctes. On va donc
   26   commencer par laisser uniquement fe->nbconn (vu que le fe ne change
   27   pas), et modifier ceci plus tard, ne serait-ce que pour prendre en
   28   compte correctement les minconn/maxconn.
   29   => solution : avoir beconn et feconn dans chaque proxy.
   30 
   31 - failed_conns, failed_secu (réponses bloquées), failed_resp... : be
   32   Attention: voir les cas de ERR_SRVCL, il semble que parfois on
   33   indique ça alors qu'il y a un write error côté client (ex: ligne
   34   2044 dans proto_http).
   35 
   36   => be et pas be->beprm
   37 
   38 - logs du backup : ->be (idem)
   39 
   40 - queue : be
   41 
   42 - logs/debug : srv toujours associé à be (ex: proxy->id:srv->id). Rien
   43   pour le client pour le moment. D'une manière générale, les erreurs
   44   provoquées côté serveur vont sur BE et celles côté client vont sur
   45   FE.
   46 - logswait & LW_BYTES : FE (puisqu'on veut savoir si on logue tout de suite)
   47 
   48 - messages d'erreurs personnalisés (errmsg, ...) -> fe
   49 
   50 - monitor_uri -> fe
   51 - uri_auth  -> (fe->firpm puis be->fiprm). Utilisation de ->be
   52 
   53 - req_add, req_exp => fe->fiprm, puis be->fiprm
   54 - req_cap, rsp_cap -> fe->fiprm
   55 - rsp_add, rsp_exp => be->fiprm, devrait être fait ensuite aussi sur fe->fiprm
   56 - capture_name, capture_namelen : fe->fiprm
   57 
   58   Ce n'est pas la solution idéale, mais au moins la capture et configurable
   59   par les filtres du FE et ne bouge pas lorsque le BE est réassigné. Cela
   60   résoud aussi un pb d'allocation mémoire.
   61 
   62 
   63 - persistance (appsessions, cookiename, ...) -> be
   64 - stats:scope "." = fe (celui par lequel on arrive)
   65   !!!ERREUR!!! => utiliser be pour avoir celui qui a été validé par
   66   l'uri_auth.
   67 
   68 
   69 --------- corrections à effectuer ---------
   70 
   71 - remplacement de headers : parser le header et éventuellement le supprimer puis le(les) rajouter.
   72 - session->proto.{l4state,l7state,l7substate} pour CLI et SRV
   73 - errorloc : si définie dans backend, la prendre, sinon dans front.
   74 - logs : faire be sinon fe.