[gull] Gérer la redirection vers https sur un cluster LVS-DR

Cédric cedric.dufour at ced-network.net
Wed Feb 8 15:36:20 CET 2017


Bonjour,


On 08/02/17 11:22, TISSOT Jacques wrote:
>
> Bonjour la communauté,
>
>  
>
> J’ai mis en place un cluster apache de test, 3 nœuds (un frontend et
> deux real servers).
>
> Load balancing LVS-DR avec ipvsadm
>
> Monitoring avec ldirectord
>
> Server web: apache
>
>  
>
> Tout fonctionne bien en http et en https si on les attaque
> directement. Mais comment gérer une REDIRECTION vers https via cette
> infrastructure ?
>
> 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 ?
>
>  
>
> Alors comment faire ?
>

Je configurerais la redirection dans (les N instances de) Apache:

<VirtualHost *:80>
  ServerName http://www.example.org
  ServerAlias example
  # Redirect to SSL
  RewriteEngine On
  RewriteRule ^$ https://www.example.org/ [L,R=301]
  RewriteRule ^/(.*)$ https://www.example.org/$1 [L,R=301]
</VirtualHost>

<VirtualHost *:443>
  ServerName https://www.example.org
 [...]
</VirtualHost>

Tout ce passera de manière transparente au niveau de LVS/ipvsadm (qui
effectivement n'a aucun moyen de regard au niveau 7).

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:

# WWW (fwm=8080)
virtual=8080
    protocol=fwm
    scheduler=sh
    checkport=80
    [...]

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:

# Mark = 8080
"${IPTABLES}" --table mangle --append PREROUTING --destination
<virtual-ip>/32 --protocol tcp --dport 80 --jump MARK --set-mark 8080
"${IPTABLES}" --table mangle --append PREROUTING --destination
<virtual-ip>/32 --protocol tcp --dport 443 --jump MARK --set-mark 8080

Bons tests,

Cédric Dufour

>  
>
> J’ai bien sûr fouillé Internet, mais sans grand résultat.
>
>  
>
> Merci pour vos expertises et vos avis
>
>  
>
> Jacques Tissot
>
> Unifr.ch
>
>  
>
>
>
> _______________________________________________
> gull mailing list
> gull at forum.linux-gull.ch
> http://forum.linux-gull.ch/mailman/listinfo/gull

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://forum.linux-gull.ch/pipermail/gull/attachments/20170208/a84377ac/attachment.html>


More information about the gull mailing list