Usando domínios curinga para exibir imagens sem bloqueio de http

1

Eu li que os navegadores às vezes bloqueiam a espera por várias imagens do mesmo host e estou tentando fazer tudo que posso para acelerar os tempos de carregamento da página.

Uma ressalva: preciso enviar arquivos por HTTPS.

Qualquer opinião sobre se isso é viável:

  1. Configure um certificado curinga para * .domain.com.
  2. Sempre que precisar de uma imagem, gere um número com base em um hash mod 5 do nome do arquivo e anexe-a a um subdomínio "img" (por exemplo, img1.domain.com, img4.domain.com, img3.domain.com , etc.); o hash fará com que qualquer nome de arquivo sempre use o mesmo subdomínio e, portanto, o navegador deve poder armazenar as imagens em cache
  3. Configure um registro dinâmico de virtualhost para apontar todos os img #. subdomínios para / var / www / img

Estou procurando feedback sobre esse plano. Minhas preocupações são:

  1. Receberei avisos quando minha página tiver https: // links para vários subdomínios?
  2. O registro dinâmico de host virtual de que estou falando é possível?
  3. Considerando a quantidade de processamento necessária, é provável que ela produza algum tipo de benefício geral? Eu provavelmente estou calculando uma média de meia dúzia de imagens por página, com apenas metade sendo alterada em cada atualização de página.

Agradecemos antecipadamente por seu feedback.

    
por iopener 05.06.2010 / 22:19

2 respostas

2

Seu esquema é possível se você tiver uma entrada DNS curinga apontando para seu servidor web e estiver configurada para responder em todos os hosts possíveis, e você tiver um certificado SSL curinga. No entanto, vejo alguns problemas:

  1. Ao colocar cada imagem em um nome de host diferente, você aumenta o número de pesquisas de DNS necessárias para carregar a página.
  2. Ao colocá-los em diferentes nomes de host, você elimina a capacidade do navegador de reutilizar uma conexão TCP existente para várias imagens. Estabelecer conexões TCP é "caro" e agora terá que haver uma conexão estabelecida para CADA imagem, em vez das poucas que seriam estabelecidas e reutilizadas se as imagens estivessem sob o mesmo nome de host.

Geralmente, algumas boas práticas para imagens de serviço incluem:

  1. Carregue imagens de um nome de host diferente do domínio principal, mas mantenha-as limitadas a um ou dois outros nomes de host (pelos motivos indicados acima).
  2. Verifique se nenhum cookie é usado nesses nomes de host (elimina a necessidade de o navegador enviar os cookies junto com a solicitação.
  3. Certifique-se de que o armazenamento em cache esteja ativado para o conteúdo exibido nesses nomes de host (geralmente não aplicável para SSL).
  4. Combine imagens e use sprites CSS sempre que possível.
  5. Muitos outros que foram bem documentados em outros lugares .
por 06.06.2010 / 05:53
0
  1. Não, se tudo for SSL & certificado válido você não terá problemas.
  2. Sim, pelo menos no apache, é tão trivial quanto definir uma única linha ServerAlias *.domain.com
  3. Não está realmente no estado atual.

Uma solução mais adequada:

Use um servidor leve (por exemplo, lighttpd com um domínio diferente, sem nenhum módulo pesado carregado (processos leves), e use apenas um por servidor com as configurações apropriadas. Ou melhor ainda, use nginx como servidor: / p>

  1. Não requer domínio / porta / certificado diferente
  2. O nginx exibe o conteúdo estático e atua como um servidor proxy reverso para as solicitações 'dinâmicas' em seu servidor original mais pesado, que é executado localmente em outra porta / ip de possivelmente outro servidor, sua escolha
  3. defina as configurações apropriadas no nginx (como keepalive, workers etc.)
  4. não tem problemas em fornecer HTTPS
por 06.06.2010 / 03:06