<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Bonjour,</p>
    <br>
    <div class="moz-cite-prefix">On 08/02/17 11:22, TISSOT Jacques
      wrote:<br>
    </div>
    <blockquote
      cite="mid:72e6e3b4dd4141108869cbddfb702098@svw-exmb1.unifr.ch"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">Bonjour la communauté,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">J’ai mis en place un cluster apache de
          test, 3 nœuds (un frontend et deux real servers).
          <o:p></o:p></p>
        <p class="MsoNormal"><span lang="EN-US">Load balancing LVS-DR
            avec ipvsadm<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Monitoring avec
            ldirectord<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Server web: apache<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal">Tout fonctionne bien en http et en https si
          on les attaque directement. Mais comment gérer une REDIRECTION
          vers https via cette infrastructure ?<o:p></o:p></p>
        <p class="MsoNormal">LVS est en couche 4 et apache est en couche
          7, donc, si je comprends bien, pas moyen de gérer la
          redirection par un Redirect ou un Rewrite dans la config
          d’apache du nœud frontend ?<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Alors comment faire ?<o:p></o:p></p>
      </div>
    </blockquote>
    <br>
    Je configurerais la redirection dans (les N instances de) Apache:<br>
    <br>
    <VirtualHost *:80><br>
      ServerName <a class="moz-txt-link-freetext" href="http://www.example.org">http://www.example.org</a><br>
      ServerAlias example<br>
      # Redirect to SSL<br>
      RewriteEngine On<br>
      RewriteRule ^$ <a class="moz-txt-link-freetext" href="https://www.example.org/">https://www.example.org/</a> [L,R=301]<br>
      RewriteRule ^/(.*)$ <a class="moz-txt-link-freetext" href="https://www.example.org/$1">https://www.example.org/$1</a> [L,R=301]<br>
    </VirtualHost><br>
    <br>
    <VirtualHost *:443><br>
      ServerName <a class="moz-txt-link-freetext" href="https://www.example.org">https://www.example.org</a><br>
     [...]<br>
    </VirtualHost><br>
    <br>
    Tout ce passera de manière transparente au niveau de LVS/ipvsadm
    (qui effectivement n'a aucun moyen de regard au niveau 7).<br>
    <br>
    Par contre, il faut impérativement travailler en mode "sh" (Source
    Hashing) ou les sessions SSL/TLS seront invalides d'une connection
    HTTP(S) à une autre; dans ldirectord.cf:<br>
    <br>
    # WWW (fwm=8080)<br>
    virtual=8080<br>
        protocol=fwm<br>
        scheduler=sh<br>
        checkport=80<br>
        [...]<br>
    <br>
    L'astuce supplémentaire consiste à utiliser les "firewall marks"
    afin de gérer de manière identique les connections 80 et 443 (par
    exemple pour maintenir les sessions PHP en passant de HTTP à HTTPS);
    dans iptables:<br>
    <br>
    # Mark = 8080<br>
    "${IPTABLES}" --table mangle --append PREROUTING --destination
    <virtual-ip>/32 --protocol tcp --dport 80 --jump MARK
    --set-mark 8080<br>
    "${IPTABLES}" --table mangle --append PREROUTING --destination
    <virtual-ip>/32 --protocol tcp --dport 443 --jump MARK
    --set-mark 8080<br>
    <br>
    Bons tests,<br>
    <br>
    Cédric Dufour<br>
    <br>
    <blockquote
      cite="mid:72e6e3b4dd4141108869cbddfb702098@svw-exmb1.unifr.ch"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">J’ai bien sûr fouillé Internet, mais sans
          grand résultat.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Merci pour vos expertises et vos avis <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Jacques Tissot<o:p></o:p></p>
        <p class="MsoNormal">Unifr.ch<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
gull mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gull@forum.linux-gull.ch">gull@forum.linux-gull.ch</a>
<a class="moz-txt-link-freetext" href="http://forum.linux-gull.ch/mailman/listinfo/gull">http://forum.linux-gull.ch/mailman/listinfo/gull</a></pre>
    </blockquote>
    <br>
  </body>
</html>