Vous avez un site International hébergé sur un seul serveur avec des visiteurs du monde entier ?
Le problème est le suivant : plus la donnée à transférer est loin , plus celle-ci va prendre du temps à transférer.(augmentation de latence)
Donc si vous êtes hébergé en Chine , les chinois surferont très rapidement mais des européens rameront pour charger des pages (chargement des pages supérieur à 10 secondes).
Il y a donc un système appelé le CDN (Content Delivery Network) qui est un ensemble d’hébergements mutualisé/serveurs qui délivrent le même contenu de façon totalement transparente.
Bon, je vais vous montrer une petite animation flash pour que cela soit bien clair :
Donc un visiteur sur votre site se connectera directement sur le serveur le plus proche de lui. Et si un serveur tombe(*) ,un serveur un peu plus loin prendra la charge.
Il y a donc une réparation de charge et un système de haute disponibilité qui se met en place avec l’utilisation du CDN.
Théorie:
J’ai longtemps cherché après des CDN tout faits par des boites d’hébergement, mais ceux-ci sont proposés pour des sommes folles.
Il faut compter environ 3000$/mois pour avoir un CDN avec 4-5 serveurs dans le monde.
Après avoir un peu tâtonné, j’ai trouvé une solution qui permet de créer soi même son réseau CDN pour environ 150-200€/an.
Cette solution qui m’est personnelle fonctionne mais je ne pourrais pas affirmer qu’ elle soit applicable à des professionnels …
Donc, il faut savoir que quand on surfe sur un NDD par exemple “cdn.avis-planethoster.com” une demande au Nameserver est émise pour connaitre son IP.
N’ayant pas un gros budget , je vais vous montrer la mise en place sur deux serveurs hébergement différents, un au Canada et l’autre en Malaisie.
Comment ai-je mis cela en place?
Nous allons utiliser le CDN pour héberger nos images , java-script , css , .... mais pas le PHP & MYSQL.
J'ai donc laissé tout le sous domaine "www" sur mon serveur principal , et le sous domaine "cdn" sur les serveurs dans le monde.
Achetez des hébergements dans des continents différents et garez (Addon Domains) votre NDD dans les cpanel (ou autre panel)
Faites un sous domaine appelé cdn et placez toutes vos données non dynamiques dedans style JPG,JS,CSS …
Dans le site nous appellerons donc nos css via l’url :
J’en conviens , le domaine principal “www” restera hébergé au Canada , car les mysql sont assez compliqués à répliquer en temps réel.
1.Garer son NDD chez Everydns
Avec un compte chez everydns.net , on peut gérer très facilement ces enregistrements DNS avec un maximum de souplesse.
Je vais donc faire pointer mon domaine principal (avis-planethoster.com) vers Everydns avec ces NS (ns1.everydns.net, ns2.everydns.net, ns3.everydns.net, et ns4.everydns.net)
Il faut déjà savoir que ces NS sont situés un peu partout dans le monde et que si le premier ne répond pas , le second aura la requête.
Dans votre compte everydns.net , ajoutez votre NDD comme suit : Add new domain: avis-planethoster.com
Si vous avez bien configuré vos NS chez votre registar , vous devriez voir cette page :
Cela veut dire que votre NDD pointe bien chez everydns et qu’ils ont défini par défaut une page (parked.everydns.net)!
2.Configurer simplement ces règles DNS chez Everydns
Nous allons dans un premier temps configurer notre NDD sur son serveur initial (à savoir celui de planethoster : 199.16.130.48 ; NS : ns1.pix-ouf.com & ns2.pix-ouf.com)
Donc nous allons rajouter 4 enregistrements DNS
avis-planethoster.com
|
A
|
199.16.130.48
|
Celle-ci permet de spécifier l’adresse IP de notre serveur.
avis-planethoster.com
|
NS
|
ns1.pix-ouf.com
|
avis-planethoster.com
|
NS
|
ns2.pix-ouf.com
|
D’utiliser nos serveurs NS hébergés toujours chez Planethoster
*.avis-planethoster.com
|
CNAME
|
avis-planethoster.com
|
Permet que tous les sous domaine utilisent les règles spécifiées au dessus.
Normalement votre site devrait tourner comme avant. (un serveur)
3.Configurer le sous domaine CDN sur deux serveurs
Étant donné que vous avez plusieurs hébergements , vous devriez donc avoir plusieurs NS différents.
Je vais utiliser deux serveurs, l’un chez Planethoster au Canada (ns1.pix-ouf.com) et un autre chez Shinjiru en Malaisie (ns149.ip-asia.com) voir OVH
Je vais rajouter deux enregistrements de type NS pour le sous domaine CDN
cdn.avis-planethoster.com
|
NS
|
ns1.pix-ouf.com
|
cdn.avis-planethoster.com
|
NS
|
ns149.ip-asia.com
|
Donc maintenant , si nous allons sur cdn.avis-planethoster.com nous avons une chance sur deux d’aller sur un serveur ou sur l’autre.
Il y a donc une réparation de charge aléatoire je vous l’accorde , il se peut qu’un malaisien se connecte sur le serveur au Canada et inversement.
Petite preuve avec just-ping.com
Petit test avec des Phproxy:
Maintenant je vous laisse imager faire cela avec une 15ène d’hébergement mutualisé ou serveurs !
Ici dans notre cas j’ai vraiment pris deux extrême, le canada qui ping bien en Europe, et la Malaisie ou internet est encore en 56K 😀
4.Configurer le sous domaine CDN pour que celui-ci redirige sur le serveur le plus proche
Dans everydns , je n’en ai pas parlé mais nous avons un champ appelé TTL,
Si nous diminuons le TTL , si le paquet va trop loin celui-ci sera supprimé et tentera le deuxième serveur qui je l’espère sera plus proche 😀
Il y a deux sortes de TTL :
-pour les routeurs (nombre de routeurs maximal de transit)
-Pour les DNS (temps pendant lequel l'information peut être conservée en cache)
Bon, finalement, la solution que j’envisageais et qui me semblait fonctionner s’avère en fin de compte pas si bonne que ça ,car j’ai pensé en terme de routeur et non de DNS…
Je mettrai le TUTO à jour quand j’aurai trouvé une astuce pour diminuer la valeur du TTL dans la trame IP et non le temps de mise en cache ou une solution DNS différente !
En attendant vous avez déjà une mise en place de deux serveurs en réparation de charge aléatoire!
Edit 7 janvier : Pas besoin de modifier le TTL ! testez vous même. (sa marche!)
Intéressant ! je dois relire ça au calme 🙂
Clairement c’est pas très compliqué mais souvent on croit que ça marche pas car les DNS sont souvent mis en cache et la propagations des DNS ne se fait pas très rapidement.Si tu test un Just-Ping et qu’il trouve un “Couldn’t resolve host” il te faudra bien 24heures avant que ça refonctionne chez eux.
Intéressant, j’étais justement occupé à faire cela avec un autre CDN (cloudflare). Quoiqu’il en soit, je ne trouve pas l’option de configuration de DNS dans l’espace membre de planethoster montrée dans l’image suivante : https://blog.avis-planethoster.com/wp-content/uploads/2011/01/0.Garer-NDD-EveryDns-300×155.png . Est-ce disponible avec un abonnement pour de l’hébergement mutualisé ?
Article sympa, mais il aurait été cool de mettre des exemples d’hebergement …gratuit avec petit volume 😉