cloudfront实现nginx的行为

默认根对象 如果您定义默认根对象,最终用户对分配的子目录的请求不返回默认根对象。例如,假设 index.html 是您的默认根对象且 CloudFront 接收最终用户对 CloudFront 分配下的 install 目录的请求: https://d111111abcdef8.cloudfront.net/install/ CloudFront 不会返回默认根对象,即使 index.html 的副本出现在install目录中。 此时一个空资源作为文件被下载下来 这与我们常用的nginx目录访问明显的不同 实现与nginx类似的行为 以下示例函数会将 index.html 附加到不在 URL 中包含文件名或扩展名的请求中。此函数对于托管在 Amazon S3 存储桶中的单页应用程序或静态生成的网站非常有用。 在 GitHub 上查看此示例 function handler(event) { var request = event.request; var uri = request.uri; // Check whether the URI is missing a file name. if (uri.endsWith('/')) { request.uri +=... » read more

图片优化
图片优化

图像优化 基于 CloudFront、S3 和 Lambda 的客户管理型解决方案 图像优化的最常见使用案例根据用户浏览器功能自动设置格式,并允许前端调整图像大小。诸如 Next.JS 之类的流行 Web 开发框架提供响应式图像组件,这些组件可以根据设备视口自动选择图像大小。下图说明了这种常见使用案例的推荐架构: 用户向采用特定转换(例如,编码和大小)的图像发送 HTTP 请求。转换在 URL 中编码,更确切地说是作为查询参数。示例 URL 如下所示:https://exmaples.com/images/cats/mycat.jpg?format=webp&width=200。 请求由附近的 CloudFront 边缘站点处理,可提供最佳性能。在向上游传递请求之前,对查看器请求事件执行 CloudFront 函数以重写请求 URL。CloudFront Functions 是 CloudFront 的一项功能,它允许您使用 JavaScript 编写轻量级函数,以进行大规模的对延迟敏感的 CDN 自定义。在我们的架构中,我们重写 URL 以验证请求的转换,并通过排列转换顺序对 URL 进行标准化,然后将其转换为小写以提高缓存命中率。当请求自动转换时,该函数还会决定最适合应用哪种转换。例如,如果用户使用 format=auto 指令要求最优化的图像格式(JPEG、WebP 或 AVIF),则 CloudFront 函数将根据请求中存在的 Accept 标头选择最佳格式。 如果请求的图像已经缓存在 CloudFront 中,则缓存将被命中,并且图像将从 CloudFront 缓存中返回。为了提高缓存命中率,我们启用了 Origin Shield,这是 CloudFront 的一项功能,可在源服务器之前充当额外的缓存层,以进一步减轻请求负担。如果图像不在 CloudFront 缓存中,则请求将被转发到... » read more