Bonsoir,
Je crée actuellement un site, une plateforme d'upload de fichier.
Donc tout fonctionne sans problèmes lors de la phase de développement (1 serveur prévu), mais avec un nombre importants d’utilisateurs, le serveur ne va pas tenir la charge.
Donc j'ai l'intention de prendre 3 serveurs dédiés 1Gbits/s.
Mais comment faire le lien avec mon code ? Car lors de l'envoie d'un formulaire en html (qui va contenir le fichier à uploader) il faut faire pointer ce dernier vers la page php qui va s'occuper du traitement/réception du fichier.
exemple:
1 2 3
| api.out_form.onsubmit =function(){
this.out_form.setAttribute('action', 'http://127.0.0.1/upload/handle_up.php');
}; |
Ce code javascript permet de faire pointer mon formulaire html vers l'URI de mon serveur: http://127.0.0.1/upload/handle_up.php au moment de l'envoie.
Donc biensure actuellement je suis en local, mais mettons que j'ai 3 serveurs, avec 1 nom de domaine, on va l’appeler: uploadomain.com.
Chaque serveur sera rattaché à un sous domaine:
exemple:
serveur 1: -> s1.uploadomain.com
serveur 2: -> s2.uploadomain.com
serveur 3: -> s3.uploadomain.com
Je souhaiterai donc au moment du "submit" du formulaire, pourvoir choisir 1 des trois serveurs. Pour ce faire, j'ai pensé à faire comme font tout les sites d'hébergement de fichiers (rapidshare, bayfiles, depositfiles, etc...).C'est à dire au moment de l'event js submit, faire une requête ajax pour récupérer le domain du serveur qui va s'occuper de recevoir le fichier. Par exemple: s2.uploadomain.com.
Vous l'aurez compris, au même moment, une autre personne sur le site qui voudrait uploader un fichier, pourrait tomber sur le serveur: s3.uploadomain.com
Ceci sera géré automatiquement au niveau du répartiteur de charge.
Et c'est là tout le problème, apparemment le load balancing se fait au niveau matériel/réseau ! Comment faire le lien avec mon code pour y accéder en PHP ?
C'est possible de le faire, car quasiment tout les hébergeurs de fichier le font.
Exemple: Bayfiles.com, lors du onsubmit, envoie une requête ajax pour récupérer le domain du serveur qui va recevoir le fichier et d'autres valeur dans un object json:
{"upload_url":"http:\/\/s6.baycdn.com\/upload\/5ffdc660\/50721bcc\/11\/0?X-Progress-ID=506c9d8cCEFCCEEE1DB3C955705D400FF0799BFA","progress_url":"http:\/\/s6.baycdn.com\/progress\/?X-Progress-ID=506c9d8cCEFCCEEE1DB3C955705D400FF0799BFA&callback=?","success_url":"http:\/\/bayfiles.com\/upload_success?X-Progress-ID=506c9d8cCEFCCEEE1DB3C955705D400FF0799BFA"}
Comme vous le voyez: "upload_url":"http:\/\/s6.baycdn.com[...]"
Je remercie d'avance les personnes qui prendront le temps de m'aider
Partager