我读过有关 CDN 的文章,但不知道它的具体用途。
假设我有一个国际社交网络(文本和图像内容),并且它的来自不同国家的流量正在增长,我可以使用 CDN 吗?
我从读过的资料中得到的信息是,它复制您的内容并将其放置在遍布世界各地的许多服务器中,以便用户从最近的点获取它。
这是否意味着每个服务器都有我的 mysql 数据库和图像文件的副本?
这是让您的网络服务面向全世界的正确方法吗?否则您如何能在全球设置服务器,联系每个国家的托管公司?
答案1
内容分发网络通常用于静态媒体。一些 CDN 是推送的,一些是拉取的,这意味着您要么将内容推送到他们的服务器,然后他们在自己的服务器网络中复制内容,要么他们从您的站点拉取内容,并给出一个地图,告诉他们 cdn.domain.com -> yourdomain.com/media/。静态媒体请求由 CDN 提供,如果不在原点(您的服务器),则从原点拉取。
如果源服务器出现故障,拉取 CDN 还可以缓存源(动态页面也是如此),从而保持您网站的某些功能正常运行。但是,对于一个互动性很强的网站来说,这不会有太大帮助。一个提供 5 分钟旧数据的新闻网站能够利用 CDN 来缓存源,这比社交媒体网站要好一点,因为社交媒体网站的状态更新需要 5 分钟才能显示出来,这可能会让您成败。
CDN 通常是一种缓存,边缘几乎没有智能。这些机器被严格设置为缓存内容并快速提供内容。虽然 Akamai 确实支持 Edge Side Includes,但让它们真正做到这一点成本高昂且有些困难。CDN 通常会缓存静态内容。
您的 mysql 数据和原始站点功能仍然存在于一个位置,但是,您的静态内容和可能的缓存页面将由 CDN 提供。为了从多个位置运行您的站点,您需要运行多个服务器,并使用“director”将浏览者发送到最近的服务器。您可以使用主机命名、DNS Anycast 或 director box 来实现这一点。您仍然需要在不同的数据中心运行多个 LAMP 服务器。有些托管服务提供商可以处理多个位置部署,您仍然可以使用 CDN 来卸载您的静态内容。