Servindo arquivos de conteúdo http localmente em vez de servidores externos

1

Ao criar nossas páginas da Web a partir de fontes de conteúdo diferentes, pode ser necessário obter algumas imagens de servidores externos (por exemplo, ao incorporar um feed RSS), que pode não ser tão rápido ou tão bem conectado quanto o nosso próprio data center. Eu gostaria de ter um meio de copiar, respectivamente, os arquivos proxy em um endereço de servidor que está sendo executado em nosso site para manter a carga fora dos servidores externos, alterando o nome do arquivo para esconder que as imagens foram geradas dinamicamente.

por exemplo. vira a seguinte url

http://domain.de/content/query?file=foo/nr_1.gif

em algo parecido com isto:

mydomain.net/static/domain.de/query_3fresource_3dfoo_2fnr_5f1.gif

Isso deve respeitar etags, se-modificado, já que a alteração expira cabeçalhos para tornar os arquivos estáticos e armazenáveis em cache, independentemente do que o servidor de origem disser.

Acho que poderia criar algo assim usando verniz e outro servidor da Web, mas talvez já exista uma solução disponível.

Isso pode ser parte de um CDN, no entanto, eu não antecipo a necessidade de um verdadeiro CDN, já que não temos muitos visitantes de outros países

    
por Alex Lehmann 08.09.2009 / 00:23

1 resposta

6

Eu recomendaria strongmente o uso de um proxy como verniz ou squid em vez de baixar os arquivos e mantê-los você mesmo, para que o proxy cuide de toda a expiração do cache e de outros entretenimentos Torne o armazenamento em cache muito divertido.

Se você estiver tentando armazenar em cache o conteúdo gerado dinamicamente e não tiver as informações de expiração adequadas nos cabeçalhos da solicitação, será necessário fazer com que quem estiver gerando essas páginas inclua os cabeçalhos apropriados (com base na taxa de alteração do dados que compõem a página), ou se isso realmente não for possível, então substituindo os tempos de expiração em seu arquivo VCL Varnish.

O "cache", recuperando tudo para os arquivos e servindo-os localmente, significa que você provavelmente estará solicitando uma pilha inteira de conteúdo que nunca será realmente entregue aos usuários (o que significa que o tráfego de rede de carga, CPU, disco, o que for - no servidor de origem é potencialmente maior do que é agora) e você vai acabar reimplementando uma grande parte do que torna um proxy de cache útil (expiração, armazenamento gestão, etc). Simplesmente não vale a pena. Não há nada como isso lá fora (que eu conheço, de qualquer forma), porque qualquer um inteligente o suficiente para fazer algo assim que não seja completo é inteligente o suficiente para perceber que má idéia é , e como eles estão apenas reimplementando a metade difícil do Squid de qualquer maneira.

    
por 08.09.2009 / 01:57