-
Notifications
You must be signed in to change notification settings - Fork 10
LoadBalancing
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