
Tenho muitas imagens para carregar do Amazon S3 em uma única página e, às vezes, leva algum tempo para carregar todas as imagens. Ouvi dizer que dividir as imagens para carregar de diferentes subdomínios ajudaria nos downloads paralelos, mas qual é a implementação real disso? Embora seja fácil dividir em subdomínios como estático, imagem, etc; Devo criar 10 subdomínios (imagem1, imagem2...) para carregar, digamos, 100 imagens? Ou existem algumas maneiras inteligentes de fazer isso?
(A propósito, estou pensando em usar o memcache para armazenar em cache as imagens S3; não tenho certeza se é possível. Ficaria grato por quaisquer comentários adicionais. Muito obrigado!
Responder1
Tentarei classificar minha resposta em pontos que com certeza podem ajudar com seu status:
- Como estamos falando de conteúdo estático, sugiro usar o Nginx como proxy reverso para servir seu conteúdo estático. O download lento pode ser porque você está atingindo o limite de conexões simultâneas do Apache.
- O uso de subdomínios diferentes ou de vários subdomínios pode ajudar no escopo dos próprios navegadores, mas, por outro lado, pode impactar a velocidade e a classificação global de sua página, já que seus subdomínios adicionarão mais solicitações de resolução de DNS, o que não é um bom coisa.
- Dê uma olhada em algo como: Cloudflare.com, eles têm alguns serviços gratuitos muito bons dos quais você pode se beneficiar.
- Faça uso do cabeçalho do cache do navegador, isso pode ser uma grande ajuda caso seu conteúdo não esteja mudando de forma muito dinâmica.
- Tente manter seus scripts estáticos (ex. CSS, JS) sempre minimizados da melhor forma.
- Tente usar algum serviço como:http://tools.pingdom.com/fpt/ehttp://gtmetrix.com/pois eles podem fornecer detalhes muito valiosos sobre o desempenho de carregamento de suas páginas, além de dicas valiosas para melhores resultados.
- Tente minimizar as solicitações geradas por suas páginas (como combinar diferentes estilos ou imagens de layout em menos imagens e controlá-las por CSS)
Humm.. isso é o que eu tinha em mente.
Responder2
A maior aceleração que você obterá é migrar para o CloudFront, o CDN da Amazon, que pode ficar na frente do S3 e tornar as coisas dramaticamente mais rápidas para os usuários.
Depois de fazer isso, se desejar, você pode criar vários subdomínios do CloudFront que apontam para o mesmo bucket S3, que você pode atribuir aleatoriamente às imagens para que sejam carregadas em paralelo (essencialmente sua ideia de imagem1, imagem2).
Responder3
Sua ideia de dividir as imagens em vários CNAMES é boa e é melhor descrita pelas práticas recomendadas do Google:https://developers.google.com/speed/docs/best-practices/rtt#ParallelizeDownloads