Qu'est ce qu'un CDN (Content Delivery Network) ?

Un Content Delivery Network (CDN) un réseau d’ordinateurs reliés entre eux à travers Internet. Qui grâce à un mécanisme de routage, permet de mettre à disposition du contenu via le noeud qui répond le plus rapidement, dans un unique but, optimiser l'affichage de son site web.

Ce que je vais écrire n'est pas nouveau sur la Toile, mais ayant tellement trimé pour comprendre certains tutos, je me permet d'en refaire un sur le sujet. Cette solution est entièrement gratuite.

Les préparatifs :

 - Téléchargez et installez Python 2.5

 - Téléchargez et installez (en autorisant la création de liens symboliques sur Linux ou Mac) le Google App Engine SDK pour Python.

 - Téléchargez ensuite le dernier package de CirruxCache et décompressez le dans un coin.

 Maintenant que tous les préparatifs sont prêts, on peut donc passer à sa création.

Google Apps Engine :

Si vous avez un compte Google, connectez-vous sur Google Apps Engine, sinon créez un compte gratuit.

On va tout d’abord créer une nouvelle application.

-         Lui donner un Nom « Application Identifier », Ex « cdn-lojik »

Attention à bien choisir le Nom , car c’est lui qui va déterminer votre url , Ex « cdn-lojik.appspot.com »

-         Lui donner un Titre « Application Title », Ex « Lojik CDN »

-         Choisir Haute Réplication dans les options de Stockage Avancées « Storage Options (Advanced) », « High Replication ».

On finit par créer l’application

Dossier CirruxCache :

Renommer tout d’abord le dossier que vous avez décompressez au préalable, en lui donnant le nom de votre application crée sous « Google Apps Engine », Ex « cdn-lojik »

1. Configuration du fichier app.yaml

Editez le fichier, et remplacez la ligne, afin de lui donner le nom de votre application :

 application : appname

Par

 application : cdn-lojik

On enregistre et on ferme le ferme le fichier

2. Configuration du fichier config.py

Editer le ficher

urls['default'] = (

             #'(/debug/.*)', 'Debug',

               '(/data/.*)', 'config.Static',

               '/www(/.*)', 'config.Www'

               )

 

class Static(cache.Service):

       origin = 'http://static.mydomain.tld'

         maxTTL = 2592000 # 1 month

        ignoreQueryString = True

 

class Www(cache.Service):

        origin = 'http://www.mydomain.tld'

        allowFlushFrom = ['127.0.0.1']

        forceTTL = 3600 # 1 hour

        ignoreQueryString = True

        forwardPost = False

Dans mon cas, ayant pas mal de site sous Joomla, et n’utilisant que des composants, modules et plugins gratuit, je me sers du CDN pour tous les fichiers qui sont contenu dans les répertoires principaux de Joomal « media »,« modules »,« components » et « plugins ». Pour information, je me sers du plugin « CDN For Joomla » disponible Ici

Je vais donc configurer deux types de services : d’une part un cache pour tout ce qui est dans ces répertoires, et du redirect pour tout le reste.

urls['default'] = (

               '(/components/.*)', 'config.Static',

               '(/media/.*)', 'config.Static',

               '(/modules/.*)', 'config.Static',

               '(/plugins/.*)', 'config.Static',

               '/(.*)', 'config.Www'

               )

 

class Static(cache.Service):

       origin = 'http://www.lojik.fr'

       forceTTL = 2592000 # 1 month

       ignoreQueryString = True
      allowFlushFrom = ['127.0.0.1']
      forwardPost = False
      headerBlacklist = ['Set-Cookie']
 

class Www(redirect.Service):

        origin = 'http://www.lojik.fr'

Tester son CDN

Lancez le logiciel « Apps Engine for Python », et allez chercher votre fichier « app.yaml »

Créer l’application sur le port « 8080 » si il n’est pas utilisé, autrement changez le port  « 8081 » …

Une fois fait, vous n’avez plus qu’à lancer l’application avec le bouton « Run », afin que l’application tourne en local sur votre ordinateur.

En allant sur « http://localhost:8080 », on doit avoir la ligne :

CirruxCache (0.4.X) / http://code.google.com/p/cirruxcache/

Si c’est le cas, on appelle un fichier concerné par le CDN.

http://localhost:8081/media/jui/js/bootstrap.min.js

Mon Javascript s’affiche, mon CDN est prêt à être déployé.

Le Déploiement

Il faut sur le bouton « Deploy » et rentrer les identifiants et mots de passe de son compte Google.
Un nouveau test sur l’application en production en remplaçant cette fois le

par

Vous n’avez plus qu'à implémenter votre CDN sur votre site