Je développe un site web à mon boulot en cgi, en c + mysql + apache.
Le site monte régulièrement en charge, et on se posait la question de savoir comment répartir la charge sur plusieurs serveurs. Mon pense pensait développer quelque chose pour gerer les différent serveurs et donc distribuer la charge.
Ceci dit, qu'existe il déjà actuellement ? Les solutions gérées au niveau hardware ? Apache a-t-il ce genre de fonctionnalité ?
Quand on fait un nslookup par exemple sur www.wikipedia.org, on obtient ca :
Réponse de source secondaire :
Nom : www.wikipedia.org
Addresses: 207.142.131.203, 207.142.131.204, 207.142.131.205, 207.142.131.202
Donc le dns me renvoi 4 serveurs. J'imagine que c'est géré par le dns, mais après, comment se décide quel serveur va réellement être utilisé ?
Merci d'avance pour vos éclairsissements !
# Clustering web
Posté par Philippe BEAU . Évalué à 3.
Ce que tu veux faire c'est du round robin. Concrètement, tu as 4 serveurs webs qui sont censés être identiques, et tes clients seront répartis pour www.tonsite.com sur ces 4 serveurs. Ensuite, il faut voir une synchro des fichiers (rsync ?) et une synchro des bases mysql.
Philippe,
http://www.choup.net
# load balancing
Posté par kolter (site web personnel, Mastodon) . Évalué à 5.
- comme tu l'indiques, il y'a le round robin des DNS, une bidouille de bind permet de le faire simplement [1]
- il y'a une version un peu plus complexe [2]
- il y'a aussi une solution avec mod_rewrite [1]
[1] http://httpd.apache.org/docs-2.0/misc/rewriteguide.html(...) (cherche "load balancing" dans la page pour trouver la section)
[2] http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html(...)
j'ai l'impression que la meilleure solution serait celle pointer par [2]
M.
# Round Robin DNS
Posté par Pascal . Évalué à 3.
Le principe est très simple, ils spécifient 4 champs A pour le même nom dans le DNS.
Ensuite chaque machine choisit une adresse IP au hasard et la charge est répartie naturellement entre les 4 serveurs.
Une autre solution est LVS (Linux Virtual Server) qui est maitenant intégré au noyau.
Le principe est simple. Il y a n serveurs et une machine qui dispatche les requètes vers les différents serveurs.
Mais attention, si tu utilises dans tes CGI des méchanismes de sessions, Il faut que tes serveurs puissent partager les données de sessions.
[^] # Re: Round Robin DNS
Posté par Philippe BEAU . Évalué à 1.
Philippe,
[^] # Re: Round Robin DNS
Posté par mac . Évalué à 1.
# LE PLUS SIMPLE
Posté par francoisp31 . Évalué à 0.
open-mosix
pas de materiel particulier
pas de clustering specifique aux applications
mais un VRAI partage/echange de thread et ce de façon transparente
voir le site www.openmosix.org
[^] # Re: LE PLUS SIMPLE
Posté par Volnai . Évalué à 4.
# OpenSSI
Posté par Bastien Mourgues . Évalué à 2.
http://www.openssi.org/cgi-bin/view?page=openssi.html(...)
Ce projet te permet de regrouper un ensemble de machines en un système unique, tu obtiens ainsi un système de "calcul" puissant, hautement disponible, et facilement "extensible". Pour ce qui est de l'accès au système, le cluster peut gérer une (ou plusieurs) IP virtuelle pour aiguiller automatiquement le trafic vers le noeud du cluster le moins chargé (pas besoin de round robin dns ou de changements dns à chaque ajout/suppression de machines dans le cluster).
D'après le test que je suis en train de faire, la mise en place est assez simple, et le résultat est bluffant (à première vue).
[^] # Re: OpenSSI
Posté par iznogoud . Évalué à 2.
Pour son cas, je préconiserai aussi un round robin DNS tout simple. Parfois le plus simple est le mieux en terme d'efficacité.
Pour avoir fait aussi un certain nombre de tests sur openssi, j'avoue que c'est pas trop dur à configurer, pour un peu qu'on a de bonnes bases sur le fonctionnement d'un Linux. Et ça donne de bons résultats.
Au passage, openssi propose une chose qu'openmosix ne propose pas de base : la haute disponibilité. C'est d'ailleurs le point que tu soulèves plus haut, avec le système d'ip virtualisée sur un graphe de machines.
# Merci !
Posté par Gael Beaudoin (site web personnel) . Évalué à 0.
A priori, le round bind serait le plus approprié pour nous :)
[^] # Re: Merci !
Posté par Gael Beaudoin (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.