J'ai cherché des moyens d'accélérer le chargement de mon site et l'une des solutions que j'aimerais explorer est d'utiliser davantage Cloudfront.
Étant donné que Cloudfront n'a pas été conçu à l'origine comme un CDN d'origine personnalisé et qu'il ne prend pas en charge le gzipping, je l'ai utilisé jusqu'à présent pour héberger toutes mes images, qui sont référencées par leur cname Cloudfront dans le code de mon site, et optimisées avec des en-têtes far-futures.
Les fichiers CSS et javascript, en revanche, sont hébergés sur mon propre serveur, car jusqu'à présent, j'avais l'impression qu'ils ne pouvaient pas être servis compressés à partir de Cloudfront, et que le gain lié à la compression (environ 75 %) l'emportait sur celui lié à l'utilisation d'un CDN (environ 50 %) : Amazon S3 (et donc Cloudfront) ne permettait pas de servir du contenu compressé de manière standard en utilisant l'en-tête HTTP Accept-Encoding qui est envoyé par les navigateurs pour indiquer leur prise en charge de la compression gzip, et il n'était donc pas possible de compresser et de servir les composants à la volée.
J'avais donc l'impression, jusqu'à présent, qu'il fallait choisir entre deux alternatives :
-
déplacer tous les actifs vers Amazon CloudFront et oublier le GZipping ;
-
garder les composants auto-hébergés et configurer notre serveur pour qu'il détecte les requêtes entrantes et effectue le GZipping à la volée comme il convient, ce que j'ai choisi de faire jusqu'à présent.
Il y a étaient des solutions de contournement pour résoudre ce problème, mais essentiellement ces n'a pas fonctionné . [ lien ].
Maintenant, il semble qu'Amazon Cloudfront prenne en charge l'origine personnalisée, et cela il est désormais possible d'utiliser la méthode standard HTTP Accept-Encoding pour servir du contenu gzippé si vous utilisez une origine personnalisée. [ lien ].
Je n'ai pas encore été en mesure de mettre en œuvre la nouvelle fonctionnalité sur mon serveur. L'article du blog dont j'ai donné le lien ci-dessus, qui est le seul que j'ai trouvé détaillant le changement, semble impliquer que vous ne pouvez activer le gzipping (avec des solutions de contournement, que je ne veux pas utiliser), que si vous optez pour une origine personnalisée, ce que je ne préfère pas : Je trouve plus simple d'héberger les fichiers correspondants sur mon serveur Cloudfront, et de créer des liens vers eux à partir de là. Malgré une lecture attentive de la documentation, je ne sais pas :
-
si la nouvelle fonctionnalité signifie que les fichiers doivent être hébergés sur mon propre serveur de domaine via origine personnalisée et, si oui, quelle configuration de code permettra d'y parvenir ;
-
comment configurer les en-têtes css et javascript pour s'assurer qu'ils sont servis gzippés depuis Cloudfront.