Você não hospeda simplesmente o site inteiro com a CDN, apenas o seu conteúdo .
Acabei de perceber que respondi a uma pergunta semelhante há algum tempo: O que o akamaihd.net faz?
Imagem de WikiMedia
Portanto, seu site faz referência http://akamai/myfile.ext
. Isso solicitará a myfile.ext
partir de akamai
. akamai
pode enviar um redirecionamento HTTP para o servidor de conteúdo real.
Agora, quando a última etapa for armazenada em cache, ótimo, todas as solicitações futuras serão direcionadas para o servidor de conteúdo mais próximo.
Como isso funciona?
Vamos assumir este site:
<html>
<body>
<img src="http://cdn/oliver.png" />
</body>
</html>
Solicito este site no meu próprio servidor da web. O .html
arquivo não está hospedado com cdn
. Nem é o DNS do meu servidor da web.
Pedido inicial
Então, meu navegador pegou o arquivo HTML e agora o analisa. Ele encontra a imagem referenciada e observa que está localizada em http://cdn/oliver.png
. Ele solicita esse arquivo.
Para fazer isso, ele precisa encontrar o endereço IP de cdn
. No nosso exemplo, esse endereço IP é 10.10.10.10
.
Com esse endereço IP, ele pode se conectar ao cdn
servidor e solicitar /oliver.png
.
Localização geográfica
Agora cdn
percebe, " esse cara é da Alemanha! ". Então, em vez de me enviar minha foto incrível que eu queria, ele me envia um redirecionamento HTTP dizendo:
/oliver.png não está aqui. Está em10.10.33.33/oliver.png
Então, meu navegador perguntará 10.10.33.33
(o que é mais próximo de mim) a imagem.
A sério?
Não estou dizendo que é assim que TODOS os CDNs funcionam, mas seria uma abordagem.
Você também pode implementar um daemon DNS que retorne resultados diferentes para uma pesquisa de nome, dependendo do local de quem enviou a consulta.
Mas duvido que isso seja feito na prática. Mas talvez eu não consiga imaginar como configurá-lo adequadamente. Veja a resposta do fluffy para saber como isso pode funcionar.
Quem dirige CDNs?
A maioria dos players globais possui sua própria rede de entrega de conteúdo (de certa forma, eu diria). Alguns provedores apenas transferem certos serviços para CDNs maiores (como a Microsoft faz com downloads do MSDN). E isso pode de alguma forma tocar no seu segundo assunto.
Considere isso, no MSDN a Microsoft oferece downloads de produtos. Esses downloads são fornecidos pela Akamai. Se você pode determinar o URL desse download, basta baixar o produto sem nunca entrar em contato com a Microsoft.
Isso é um problema de segurança? Na verdade, não, porque o que está sendo baixado ainda está protegido (por uma chave de produto).
Mas e quanto a outros dados?
Se seus dados são relevantes para a segurança, não são materiais da CDN. Se você não deseja que algo esteja disponível o mais amplamente possível, não o coloque em uma CDN.
Uma abordagem bastante comum da CDN é usar o que é conhecido como " anycast ". Como isso funciona é que seus servidores distribuídos são colocados com DNSs que respondem com esse servidor como destino; por exemplo, você pode ter três servidores em diferentes instalações de hospedagem e os respectivos DNSs alegam que o endereço IP é o endereço canônico do seu servidor (chame, digamos
content.example.com
). Cada um dos DNSs está configurado para ter o mesmo endereço IP global e, em seguida, as instalações de cada servidor usam atualizações de BGP para garantir que a rota para o servidor mais próximo seja vencida - portanto, quando você faz uma pesquisa de nomecontent.example.com
, o mais rápido / mais próximo / O DNS mais disponível responde à solicitação com seu servidor HTTP.Dessa forma, não são necessários truques GeoIP, e você sempre recebe conteúdo do servidor que for mais rápido para você - o que pode ou não ter algo a ver com sua localização física, devido à natureza heterogênea da Internet.
Entendo que a Akamai, pelo menos parcialmente, funciona dessa maneira.
fonte
Também estão disponíveis CDNs do tipo Origem Pull.
O Amazon Cloudfront pode usar essa técnica.
Você configura um CNAME como media.example.com que aponta para o nome do servidor atribuído e deixa todo o seu conteúdo no servidor. Para imagens e conteúdo que você deseja entregar pela CDN, use media.example.com no URL. A solicitação vai para a rede de servidores e, se o conteúdo não estiver disponível, os servidores receberão o conteúdo do servidor. Uma vez no sistema, o conteúdo é distribuído para os farms de servidores mais próximos de onde a demanda existe e permanece lá para o TTL atribuído. Seu servidor não vê mais tráfego no conteúdo em cache até que o TTL expire e o Cloudfront precise atualizá-lo.
fonte
Akamai não funciona dessa maneira. CDNs diferentes funcionam de maneira diferente, mas a Akamai especificamente não faz nenhumcast para seus servidores da web.
Quando um usuário em NY deseja
www.acme.com
, o servidor de nomes do acme.com é redirecionado ("delegado") para um servidor de nomes da Akamai. O servidor de nomes da Akamai vê onde a máquina que está fazendo a pergunta está localizada (com base em seu endereço IP) e retorna o endereço IP do servidor Akamai mais próximo / melhor para servirwww.acme.com
.fonte
Um ótimo resumo de como o CDN da Akamai funciona pode ser encontrado aqui
Em resumo:
e, como mencionado na postagem do blog acima, algumas grandes empresas resolvem o DNS usando seus próprios servidores, o que pode negar alguns dos benefícios do uso de uma CDN.
fonte
CDN funciona em Anycast DNS. O Anycast dns funciona no IP do Anycast. IP Anycast: um ip atribuído em vários servidores. Quando o usuário solicita o resolvedor de DNS, essa consulta é tratada pelo servidor mais próximo e fornece dados do servidor com menos latência.
fonte