将数据存储在 Amazon 的 S3 中。部分数据供公众查看,部分数据供私人查看。
我宁愿将 S3 中的所有内容标记为私有,并通过我的 Web 应用程序强制执行查看限制。S3 的 API 可让您生成一个签名的 URL,以便在有限的时间内访问私有数据。
我想要的是:
- mycdn.com/public_content_a 的公开请求
- CDN 边缘服务器联系 example.org/public_content_a,其 3xx 重定向至 s3.amazonaws.com/public_content_a
- 未来对 mycdn.com/public_content_a 的请求将返回来自 S3 的缓存内容
- 实际内容永远不会通过 example.org,只有重定向
- 缓存过期时间过长
对于私人内容,情况会类似,只是我会将缓存过期时间设置得更早。
有可能实现这样的事吗?我能接近这个目标吗?
答案1
如果您正在设置拉取区域,您将能够定义源服务器。在这种情况下,您根本不会通过 CDN 使用 example.org。
mycdn.com
将是源服务器的拉取区域,s3.amazonaws.com
任何请求都mycdn.com
将首先检查缓存内容。如果缓存已过期或不存在,则请求将从源服务器拉取并通过代理方式一次性传送给最终用户。
您的原始 URL 绝不会暴露给最终用户,因此您无需在中间设置 Web 应用程序或进行 300 重定向。
我曾经使用过的每个带有拉取区域的 CDN 都是这种情况。