我知道 CDN 仅用于静态内容。但是我仍然必须通过 apache 服务器分散到世界的各个角落,对吗?所以当我完成它时,为什么我不设置一些专用的 apache 服务器,只提供静态内容,就像 CDN 一样?
与这种情况相比,仍然使用 CDN 是否有真正的好处?
我知道 CDN 仅用于静态内容。但是我仍然必须通过 apache 服务器分散到世界的各个角落,对吗?所以当我完成它时,为什么我不设置一些专用的 apache 服务器,只提供静态内容,就像 CDN 一样?
与这种情况相比,仍然使用 CDN 是否有真正的好处?
CDN 用于将在许多不同位置多次访问的任何内容。例如,YouTube 使用 CDN。
CDN 的主要优势是您可以为大多数互联网用户提供本地接入点。如果您注意到来自北美、英格兰和巴西的大量流量,那么他们不可能都获得最佳体验,因为如果您的服务器位于新西兰,那么它们都会以不同的速度访问。
通过将您的服务器放在您获得大部分流量的国家/地区,然后将用户引导到他们最近的服务器,您可以消除许多潜在的瓶颈。
仅仅拥有“一些只提供静态内容的专用服务器”并不能缓解这个问题,因为您的所有服务器都将在同一个地方。如果您要将服务器分布在世界各地,那么您的两种情况是相同的。
话虽如此,除非我是 YouTube 或 Facebook 这样规模的人,否则我永远不会费心构建自己的 CDN。有一些供应商已经拥有一个庞大、强大的网络供您使用。有关详细信息,请参阅以下 ServerFault 问题:
您用于为应用程序提供动力的机器将被配置为处理您的应用程序需求。该配置可能不是静态资产的最佳配置。您可以在同一台机器上运行 nginx/lighttpd 来处理您的静态内容并构建您自己的 CDN,同时保持您的应用程序服务器配置为以最佳方式运行您的应用程序。与将其中的一部分分包给只做这件事的人相比,自己做这件事有内在的成本。
与 CDN 签约是否更有意义是您需要回答的财务/努力问题,但是,取决于您的应用程序、您正在部署的服务器、您可以提出的配置,您可以避免使用 CDN 供应商。您可以专注于应用程序并允许某人处理它,或者必须精通处理完整的包。