He estado buscando formas de hacer que mi sitio se cargue más rápido y una forma en que me gustaría explorar es hacer un mayor uso de Cloudfront.
Debido a que Cloudfront originalmente no fue diseñado como un CDN de origen personalizado y porque no admitía el gzipping, hasta ahora lo he estado usando para alojar todas mis imágenes, a las que hace referencia su nombre de Cloudfront en el código de mi sitio, y optimizado con mucho -futures encabezados.
Los archivos CSS y JavaScript, por otro lado, están alojados en mi propio servidor, porque hasta ahora tenía la impresión de que no podían ser enviados desde Cloudfront, y que la ganancia de gzipping (alrededor del 75 por ciento) supera eso por usar un CDN (aproximadamente el 50 por ciento): Amazon S3 (y, por lo tanto, Cloudfront) no admitía la publicación de contenido comprimido de manera estándar al usar el encabezado HTTP Accept-Encoding que se envía por los navegadores para indicar su compatibilidad con la compresión gzip, y por lo que no pudieron Gzip y servir componentes sobre la marcha.
Por lo tanto, tenía la impresión, hasta ahora, de que había que elegir entre dos alternativas:
mover todos los activos a Amazon CloudFront y olvidarse de GZipping;
mantenga los componentes autohospedados y configure nuestro servidor para detectar solicitudes entrantes y realizar GZipping sobre la marcha, según corresponda, que es lo que elegí hacer hasta ahora.
No eran soluciones para resolver este problema, pero esencialmente éstos no funcionaron . [ enlace ].
Ahora, parece que Amazon Cloudfront es compatible con el origen personalizado, y que ahora es posible usar el método de codificación de aceptación HTTP estándar para servir contenido comprimido si está utilizando un origen personalizado [ enlace ].
Hasta ahora no he podido implementar la nueva función en mi servidor. La publicación de blog a la que he vinculado anteriormente, que es la única que encontré que detalla el cambio, parece implicar que solo puede habilitar el gzipping (soluciones alternativas de barras, que no quiero usar), si opta por un origen personalizado, que Prefiero no hacerlo: me resulta más sencillo alojar los archivos correspondientes en mi servidor Cloudfront y vincularlos desde allí. A pesar de leer detenidamente la documentación, no sé:
si la nueva característica significa que los archivos deben estar alojados en mi propio servidor de dominio a través de un origen personalizado, y si es así, qué configuración de código logrará esto;
cómo configurar los encabezados css y javascript para asegurarse de que se sirvan comprimidos desde Cloudfront.