Je cherchais une solution pour optimiser mon site, de manière très économique. Souvent, un réseau de distribution de contenu est une bonne solution, mais pas chère. J'ai donc utilisé Google App Engine en tant que CDN avec Ubuntu..
Des éléments tels que les feuilles de style, les images et les vidéos constituent souvent le principal impact d'un serveur Web lors du chargement d'une page Web. Il a été prouvé que le chargement de ces actifs depuis différents domaines permettait au navigateur d'effectuer plusieurs tâches à la fois, car il n'était pas obligé d'attendre que Asset 1 sur le domaine example.com soit chargé pour commencer à télécharger Asset 2 sur le même domaine. Il y a un certain nombre d'approches à cela, et dans ce tutoriel, nous en analyserons trois.
La plupart des gens créent simplement des sous-domaines tels que "images.domaine.fr", "styles.domaine.fr", etc. Les ressources sont ensuite appelées à partir des sous-domaines. Le navigateur "pense" donc qu'il provient d'un autre emplacement, alors qu'en réalité, il cible toujours la même structure..
Cette approche est utile et il existe une différence notable dans les temps de chargement. L'inconvénient est que vous frappez toujours votre serveur Web, et maintenant encore plus durement, car vous établissez plusieurs connexions à la fois. Si vous chargez des images ou de petits fichiers, pas de problème, mais la situation s’aggravera si vous essayez de charger des vidéos ou des fichiers plus lourds; et aussi, surtout pour l'hébergement bon marché, il n'est pas toujours possible de créer des sous-domaines.
Cela consiste à avoir un deuxième serveur Web uniquement pour charger des actifs pendant que votre serveur Web principal traite les autres appels. Vous avez deux serveurs Web utilisant deux ports différents. Le serveur Web principal est responsable de toutes les demandes, mais redirigera chaque appel d'actif vers votre deuxième serveur Web. Ici, les gens utilisent normalement deux types de serveurs Web différents. Le plus souvent Apache (en tant que serveur Web principal) et lighttpd en tant que serveur Web secondaire.
Le concept est vraiment joli, mais cela signifie également que vous devez maintenant maintenir deux serveurs Web. Le second (lighttpd) devrait vraiment être unique, car une fois configuré, il ne servira que du contenu statique. Pourtant, il y a deux serveurs Web sur votre serveur, et si quelque chose ne va pas, il est un peu difficile à dépanner.
En gros, cela consiste à héberger vos actifs ailleurs, sans devoir maintenir ou surveiller les performances, car la tâche principale de ce serveur est de servir du contenu statique. Ce paradis s'appelle "Cloud computing"et c'est un" mot à la mode "pour le moment. En gros, il s'agit d'un réseau de serveurs situés dans des endroits stratégiques. Nous l'appelons des endroits stratégiques, car les serveurs sont situés près de vous. Pas près de vous, mais à partir de votre IP, il vous redirige vers le serveur le plus proche, à partir duquel vous allez récupérer les actifs nécessaires.
Cela fonctionne plutôt comme un équilibreur de charge, mais basé sur l'emplacement, au lieu du nombre de connexions. Il s'assure que les bits parcourent la distance la plus courte afin de vous atteindre. En d'autres termes, si vous êtes en Italie (comme moi), pourquoi devriez-vous attendre que les données arrivent des États-Unis, s'il existe un serveur juste à côté de chez vous. Certaines entreprises offrent le CDN à un prix très raisonnable, mais aujourd’hui, nous allons parler de trucs gratuits!
Avant de commencer ce didacticiel, je dois préciser que la forme de CDN que nous allons utiliser ici n’est pas vraiment CDN, car elle n’offre pas une très grande évolutivité et n’a pas été développée pour cela. dans le seul but de servir des fichiers statiques. Cela signifie qu'il n'aura pas les mêmes performances élevées qu'un service désigné spécifiquement pour cette tâche. Pour certains (comme moi), cela ne fera pas une énorme différence, car cette méthode est toujours meilleure que rien et elle est immensément plus rapide que beaucoup de serveurs aux alentours. Aussi, pour la plupart des personnes qui utilisent des sociétés d’hébergement et dont la bande passante est limitée, ce sera une énorme amélioration..
Créez un compte Google. Si vous avez un compte Gmail qui fera l'affaire. Je ne l'expliquerai pas en détail, mais visitez ici pour en créer un. Inscrivez-vous pour une application Google App Engine. Et maintenant…
Connectez-vous simplement à votre compte App Engine nouvellement créé et cliquez sur le bouton Créer une application, que j'ai nommé le mien "mynewcdn". J'utilise Python avec Ubuntu (mais certaines étapes sont les mêmes pour les utilisateurs Windows):
Avec l’installation par défaut d’Ubuntu, un interpréteur Python est déjà présent dans le système. Sinon, installez simplement Python. Si vous utilisez Windows, vous pouvez télécharger Python à partir de Python.org.
Téléchargez le dernier SDK Google App Engine pour Python (actuellement à la version 1.5.5);
Créez un dossier appelé Projets et extrayez-y le SDK Google App Engine pour Python.
fabrizio @ fabrix: ~ / Projects $ unzip google_appengine_1.5.5.zip fabrizio @ fabrix: ~ / Projets $ cd google_appengine fabrizio @ fabrix: ~ / Projets / google_appengine $ mkdir mynewcdn
et maintenant vous devriez avoir ceci (le nom du dossier DEVRAIT être le même que le nom de l'application)
fabrizio @ fabrix: ~ / Projects / google_appengine $ ls appcfg.py dev_appserver.py outils mynewcdn BUGS gen_protorpc.py nouveau_projet_template VERSION bulkload_client.py google README bulkloader.py lib RELEASE_NOTES
Maintenant dans votre dossier (pour moi mynewcdn) vous devez copier tous les dossiers avec le contenu statique de votre site Web (par exemple le dossier / wp-content / uploads /). Dans mon cas, j'ai créé un dossier à l'intérieur mynewcdn appelé fdicarlo avec toutes les données. Dans un dossier portant le nom de l'application que vous avez créée, créez un fichier. app.yaml. Le contenu de ce fichier devrait ressembler à ceci:
application: mynewcdn version: 1 runtime: python api_version: 1 gestionnaires: - url: / fdicarlo static_dir: fdicarlo threadsafe: true
Bien sûr, vous devez remplacer mynewcdn avec le nom de votre application et fdicarlo avec le nom du dossier de votre contenu statique. Vous pouvez trouver plus d'informations sur le fichier app.yaml sur la page de configuration d'application Python. Maintenant, la situation ressemble à ceci:
fabrizio @ fabrix: ~ / Projets / google_appengine / mynewcdn $ ls app.yaml fdicarlo
Et maintenant:
fabrizio @ fabrix: ~ / Projets / google_appengine / mynewcdn $ cd… fabrizio @ fabrix: ~ / Projets / google_appengine $ python appcfg.py update mynewcdn
Une fois le téléchargement terminé, votre CDN est prêt à l'adresse nameofapp.appspot.com, le mien, par exemple, est http://mynewcdn.appspot.com/fdicarlo. Pour vérifier que le CDN fonctionne correctement, essayez d’afficher des images et / ou des fichiers à partir du CDN..
Une fois que vous avez créé l'instance sur le moteur d'applications Google et que vous avez l'URL de l'application, il ne reste plus qu'à l'ajouter aux paramètres de WP Super Cache et à tester le fonctionnement de la page. Si, au cours de ces étapes, vous avez l’impression que rien ne se passe, essayez d’effacer le cache activé de vos pages en cache, dans l’autre onglet intitulé "Contenu", puis enregistrez les paramètres. J'ai utilisé WP Super Cache parce que c'est utile (et puissant) également pour le cache, mais vous pouvez utiliser d'autres plugins comme CDN Linker et les étapes sont similaires.
Dans le champ "URL hors site", j'insère http://mynewcdn.appspot.com/fdicarlo. Bien sûr, vous devriez remplacer mynewcdn et fdicarlo avec ton nom.
Dans le champ "Inclure les répertoires", je mets wp-content.
Et dans le dernier champ "Exclure si sous-chaîne", je vous suggère d'insérer "php" pour exclure les fichiers php. Définissez vos paramètres comme bon vous semble, sauvegardez et maintenant vous avez configuré votre CDN. Maintenant, lorsque vous ajoutez des images ou d’autres données dans WordPress, vous devez également les copier dans le dossier local et les mettre à jour avec:
fabrizio @ fabrix: ~ / Projets / google_appengine $ python appcfg.py update mynewcdn
J'espère que cela a aidé quelqu'un à créer et à utiliser Google CDN. L’utilisation d’un CDN n’est qu’un aspect du référencement. Une performance médiocre est souvent causée par de nombreux facteurs. Si vous utilisez un CDN, la minification et la mise en cache peuvent apporter de bonnes améliorations à votre blog, il n'y a donc aucune raison de ne pas les essayer..