Je cherchais des moyens d'accélérer le chargement de mon site et j'aimerais explorer une meilleure utilisation de Cloudfront.
Parce 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 jusqu'à présent utilisé pour héberger toutes mes images, qui sont référencées par leur nom de domaine Cloudfront dans mon code de site, et optimisées avec loin -en-têtes futurs.
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 au format gzip depuis Cloudfront, et que le gain du gzipping (environ 75%) l'emporte sur celui d'utiliser un CDN (environ 50%): Amazon S3 (et donc Cloudfront) ne prend pas en charge la diffusion de contenu gzippé de manière standard en utilisant l'en-tête HTTP Accept-Encoding envoyé par les navigateurs pour indiquer leur prise en charge de la compression gzip, et ils n'ont donc pas pu Gzip et servir des composants à la volée.
Ainsi j'avais l'impression, jusqu'à présent, qu'il fallait choisir entre deux alternatives:
déplacer tous les actifs vers Amazon CloudFront et oublier GZipping;
garder les composants auto-hébergés et configurer notre serveur pour détecter les demandes entrantes et effectuer le GZipping à la volée selon les besoins, ce que j'ai choisi de faire jusqu'à présent.
Il y avait des solutions de contournement pour résoudre ce problème, mais essentiellement cela n'a pas fonctionné . [ lien ].
Il semble maintenant qu'Amazon Cloudfront prend en charge l'origine personnalisée et qu'il est désormais possible d'utiliser la méthode HTTP Accept-Encoding standard pour servir du contenu compressé si vous utilisez une origine personnalisée [ lien ].
Jusqu'à présent, je n'ai pas pu implémenter la nouvelle fonctionnalité sur mon serveur. Le billet de blog que j'ai lié ci-dessus, qui est le seul que j'ai trouvé détaillant le changement, semble impliquer que vous ne pouvez activer le gzipping (barres de contournement, que je ne veux pas utiliser), si vous optez pour une origine personnalisée, qui Je préfère ne pas: je trouve plus simple d'héberger les fichiers correspondants sur mon serveur Cloudfront et de les lier à partir de là. Malgré la 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 une origine personnalisée, et si oui, quelle configuration de code y parviendra;
comment configurer les en-têtes css et javascript pour vous assurer qu'ils sont servis au format gzip depuis Cloudfront.