No solo aloja el sitio completo con la CDN, solo su contenido .
Me acabo de dar cuenta de que respondí una pregunta similar hace un tiempo: ¿Qué hace akamaihd.net?
Imagen de WikiMedia
Entonces su sitio hace referencia http://akamai/myfile.ext
. Esto solicitará myfile.ext
de akamai
. akamai
luego puede enviar una redirección HTTP al servidor de contenido real.
Ahora, cuando se almacena en caché ese último paso, genial, todas las solicitudes futuras irán al servidor de contenido más cercano.
¿Cómo funciona?
Asumamos este sitio web:
<html>
<body>
<img src="http://cdn/oliver.png" />
</body>
</html>
Solicito este sitio web desde mi propio servidor web. El .html
archivo no está alojado con cdn
. Tampoco es el DNS de mi servidor web.
Solicitud inicial
Entonces mi navegador obtuvo ese archivo HTML y ahora lo analiza. Encuentra la imagen referenciada y observa que se encuentra en http://cdn/oliver.png
. Solicita ese archivo.
Para hacer eso, necesita encontrar la dirección IP de cdn
. En nuestro ejemplo, esa dirección IP es 10.10.10.10
.
Con esa dirección IP, puede conectarse al cdn
servidor y solicitar /oliver.png
.
Geo Location
Ahora se cdn
da cuenta, "¡ ese tipo es de Alemania! ". Entonces, en lugar de enviarme la imagen increíble que quería, me envía una redirección HTTP que dice:
/oliver.png no está aquí. Está en10.10.33.33/oliver.png
Entonces mi navegador preguntará 10.10.33.33
(que espero esté más cerca de mí) por la imagen.
¿Seriamente?
No estoy diciendo que así es como funcionan TODOS los CDN, pero sería un enfoque.
También podría implementar un demonio DNS que devuelva resultados diferentes para una búsqueda de nombre dependiendo de la ubicación de quien envió la consulta.
Pero dudo que esto se haga en la práctica. Pero tal vez no puedo imaginar cómo configurarlo correctamente. Vea la respuesta de Fluffy sobre cómo podría funcionar.
¿Quién dirige CDN?
La mayoría de los jugadores globales tienen su propia red de entrega de contenido de alguna manera (o eso supongo). Algunos proveedores simplemente descargan ciertos servicios a CDN más grandes (como lo hace Microsoft con las descargas de MSDN). Y esto podría de alguna manera tocar tu segundo tema.
Considere esto, en el MSDN Microsoft ofrece descargas de productos. Estas descargas son proporcionadas por Akamai. Si puede determinar la URL de esa descarga, puede descargar el producto sin ponerse en contacto con Microsoft.
¿Es eso un problema de seguridad? En realidad no, porque lo que se está descargando todavía está protegido (por una clave de producto).
Pero ¿qué hay de otros datos?
Si sus datos son relevantes para la seguridad, entonces no es material de CDN. Si no desea que algo esté disponible lo más ampliamente posible, no lo ponga en un CDN.
Un enfoque bastante común para CDN es usar lo que se conoce como " anycast ". Cómo funciona esto es que sus servidores distribuidos se ubican con DNS que responden con ese servidor como destino; por ejemplo, puede tener tres servidores en diferentes instalaciones de alojamiento, y sus respectivos DNS afirman que su dirección IP es la canónica para su servidor (llámelo, por ejemplo
content.example.com
). Los DNS están configurados para tener la misma dirección IP global, y luego cada una de las instalaciones de los servidores usan actualizaciones BGP para que la ruta al servidor más cercano gane, por lo que cuando realiza una búsqueda de nombrecontent.example.com
, el más rápido / más cercano / DNS más disponible responde a la solicitud con su servidor HTTP.De esta manera, no se necesitan trucos de GeoIP, y siempre se le sirve contenido por el servidor que sea más rápido para usted, lo que puede o no tener que ver con su ubicación física, debido a la naturaleza heterogénea de Internet.
Tengo entendido que Akamai al menos funciona parcialmente de esta manera.
fuente
También están disponibles los CDN de tipo Origin Pull.
Amazon Cloudfront puede usar esta técnica.
Configura un CNAME como media.example.com que apunta a su nombre de servidor asignado y deja todo su contenido en su servidor. Para las imágenes y el contenido que desea entregar a través de la red CDN, use media.example.com en la URL. La solicitud va a la red de su servidor y si el contenido no está disponible, sus servidores extraen el contenido de su servidor. Una vez en el sistema, el contenido se distribuye a las granjas de servidores más cercanas al lugar donde existe la demanda y permanece allí para el TTL asignado. Su servidor ya no ve ningún tráfico en el contenido en caché hasta que caduque el TTL y Cloudfront tenga que actualizarlo.
fuente
Akamai no funciona de esta manera. Diferentes CDN funcionan de manera diferente, pero Akamai específicamente no realiza ninguna transmisión para sus servidores web.
Cuando un usuario en Nueva York quiere
www.acme.com
, el servidor de nombres de acme.com redirige ("delega") a un servidor de nombres Akamai. El servidor de nombres de Akamai ve dónde se encuentra la máquina que hace la pregunta (en función de su dirección IP) y devuelve la dirección IP del servidor Akamai más cercano / mejor para servirwww.acme.com
.fuente
Un gran resumen de cómo funciona el CDN de Akamai se puede encontrar aquí
En breve:
y como se menciona en la publicación del blog mencionada anteriormente, algunas grandes corporaciones resuelven DNS usando sus propios servidores, lo que puede negar algunos de los beneficios de usar un CDN.
fuente
CDN funciona en Anycast DNS. Anycast dns funciona en Anycast ip. Anycast ip: una asignación de ip en varios servidores. Cuando el usuario solicite dns resolver, esa consulta será manejada por el servidor más cercano y proporcionará datos del servidor con la menor latencia.
fuente