Skip to content
hb edited this page Feb 25, 2015 · 1 revision

Cette page a pour but de documenter le loadbalancing mis en place par VLM.

  • 1 serveur maitre (dénommé S0 plus loin)

  • plusieurs serveurs esclaves servant de frontaux web (dénommé S1, S2, etc...)

  • 1 load-balancer

  • premier test avec apache / mod proxy

  • Conf actuelle avec haproxy 1.4

  • sur la base de l'IP actuellement OK

  • sur la base de la charge avec un cookie de session

    • désactivé pour simplifier la gestion des timeouts de session.

global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 user haproxy group haproxy

defaults
       log     global
       mode    http
       option  httplog
       option  httpclose
       option  dontlognull
       retries 3
       option persist
       option redispatch
       maxconn 2000
       contimeout      5000
       clitimeout      50000
       srvtimeout      50000

listen vlm 1.2.3.4:80
       stats enable
       stats uri     /haproxy/stats
       stats refresh 5s
       reqidel ^X-Forwarded-For:.*
       option forwardfor
       balance source
       option httpchk /status/alive-status.php
       server S0 S0.vlm.org  weight 1 backup check inter 2000 rise 2 fall 5
       server S1 S1.vlm.org  weight 2        check inter 2000 rise 2 fall 5
       server S2 S2.vlm.org  weight 4        check inter 2000 rise 2 fall 5
  • (Non)Neutralité du load-balancing.

    • intégrer dans le développement le fait que ce n'est pas toujours le même serveur qui parle au client...
  • Capacité à changer à la volée la répartition de charge

    • pouvoir utiliser ponctuellement S0 pour absorber une grosse charge : OK
    • possibilité pour un extérieur à l'hébergeur (i.e. : sans accès à une console) de faire l'opération ?
    • pouvoir ajouter un frontal tiers facilement ?
      • exemple : utiliser un serveur d'un des dev en appui d'un pic de charge (mais sans base de donnée par exemple).
      • voir les pb de sécurités ?
  • Laisser un accès aux admins

    • actuellement, les logs de déploiement des modules sont visibles "par serveur"
    • Voir Actions à prendre
  • L'utiliser pour faire du cache ou un load balancing ciblé.

    • Cible : /cache/, /externals/, /images/, /styles/, /scripts/
    • Voir Actions à prendre
  • Donner aux admins un accès complet aux logs du déploiement (pour tous les serveurs).

    • OK via une règle réseau, reste à faire un état d'admin pour que l'accès soit plus facile.
  • Déclarer t1.vlm.org, t2, t3, t4 pour multi-plexer

    • et mettre en round robin au niveau du LB pour /images/ + /racemap.php?... + /minimap.png... flag... + .css + /externals/ + *.js
  • Tests de vie plus complet incluant mysql (#497) : OK

Clone this wiki locally