
Tengo que cargar muchas imágenes desde Amazon S3 en una sola página y, a veces, lleva bastante tiempo cargar todas las imágenes. Escuché que dividir las imágenes para cargar desde diferentes subdominios ayudaría a las descargas paralelas, sin embargo, ¿cuál es la implementación real al respecto? Si bien es fácil dividir subdominios como estático, imagen, etc. ¿Debo crear como 10 subdominios (imagen1, imagen2...) para cargar, digamos, 100 imágenes? ¿O hay algunas formas inteligentes de hacerlo?
(Por cierto, estoy considerando usar Memcache para almacenar en caché las imágenes S3; no estoy seguro de si es posible. Agradecería cualquier comentario adicional. ¡Muchas gracias!
Respuesta1
Intentaré ordenar mi respuesta en puntos que seguramente pueden ayudar con su estado:
- Como estamos hablando de contenido estático, sugiero usar Nginx como proxy inverso para servir su contenido estático. La descarga lenta puede deberse a que está alcanzando el límite de conexiones simultáneas de Apache.
- El uso de subdominios diferentes o múltiples puede ayudar en el alcance de los navegadores en sí, pero, por otro lado, puede afectar la velocidad y clasificación global de su página, ya que sus subdominios agregarán más solicitudes de resolución de DNS, lo cual no es una buena opción. cosa.
- Eche un vistazo a algo como: Cloudflare.com, tienen muy buenos servicios gratuitos de los que beneficiarse.
- Utilice el encabezado Browser Caching; esto podría ser de gran ayuda en caso de que su contenido no cambie de manera muy dinámica.
- Intente mantener sus scripts estáticos (por ejemplo, CSS, JS) siempre minimizados al máximo.
- Intente utilizar algún servicio como:http://tools.pingdom.com/fpt/yhttp://gtmetrix.com/ya que pueden brindarle detalles muy valiosos sobre el rendimiento de carga de sus páginas, además de valiosos consejos para obtener mejores resultados.
- Intente minimizar las solicitudes que generan sus páginas (como combinar diferentes estilos o imágenes de diseño en menos imágenes y controlarlas mediante CSS)
Humm... esto es lo que tenía en mente.
Respuesta2
La mayor aceleración que obtendrá es migrar a CloudFront, la CDN de Amazon, que puede ubicarse frente a S3 y hacer que las cosas sean dramáticamente más rápidas para los usuarios.
Una vez que haya hecho eso, si lo desea, puede crear múltiples subdominios de CloudFront que apunten al mismo depósito S3, que luego podría asignar aleatoriamente a las imágenes para que se carguen en paralelo (esencialmente su idea de imagen1, imagen2).
Respuesta3
Su idea de dividir las imágenes en varios CNAMES es buena y se describe mejor mediante las mejores prácticas de Google:https://developers.google.com/speed/docs/best-practices/rtt#ParallelizeDownloads