据我所知,CDN 旨在将您的静态文件物理缓存在更靠近用户的多个区域中。但是,我注意到一些网站,当从其服务器请求页面时,他们会从其 cdn 中获取资产文件,对其进行处理(压缩、最小化等),将结果缓存在其服务器上,然后将其发送给请求该页面的用户。
这对我来说不太合理。在服务器上处理文件不会抵消使用 CDN 带来的好处吗?这是正常的做事方式,还是我不了解整个资产管理概念?
答案1
让 CDN 处理文件可以让开发人员的工作更轻松。此外,根据网站的不同,开发人员可能不知道最佳的压缩/缩放技术,因此将其交给托管 CDN 的人并不是坏事。
出于好奇,您是如何注意到这种行为的?似乎如果做得正确,最终用户是无法察觉的。
答案2
一些网站,当从其服务器请求页面时,他们会从其 cdn 中获取资产文件,对其进行处理(压缩、最小化等),将结果缓存在其服务器上,然后将其发送给请求该页面的用户。
好的,假设你有www.company.com
自己的服务器,并且你还有另一家公司提供的 CDN 服务。你的意思是从 CDN 上的存储中提取数据并将其转移到正在运行的服务器园区www.company.com
,然后从那里为最终用户提供服务?
如果这就是你的意思,那么它就没有意义,而且似乎是一个错误。对于某些形式的“云文件存储”,例如 Amazon S3,它可能很有意义。但 Amazon S3 不是 CDN,而是一种高度可扩展的文件存储,它不像 CDN 那样分布到世界各地的 POP。(如果您想要 Amazon 产品系列中的 CDN,那么您需要 Amazon CloudFront。)
也许你的意思是反过来,你有www.company.com
自己的服务器,并且你服务器资产到您的 CDN。然后您的 CDN 会缩小并对其进行 HTTP 压缩,然后将其压缩后提供给最终用户?这很正常,但这只是一个更容易配置的问题。有些人/公司似乎不愿意花精力配置自己的 Web 服务器,所以他们要求 CDN 来处理这个问题。(顺便说一句,这只是一个部分解决方案,因为只有“静态”CSS 和 JS 等才能得到最佳服务——HTML 通常不会通过 CDN。)
据我所知,CDN 的目的是将你的静态文件物理缓存在更靠近用户的多个区域。
是的,没错。在这种情况下,“更接近”是“网络延迟更少”的简写。