Amazon S3 Redirect和Cloudfront

Mat*_*ith 60 redirect amazon-s3 amazon-web-services amazon-cloudfront

我正在尝试使用对象在S3上设置301重定向,这里引用了http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html.我遇到了一些问题,似乎无法弄清楚我做错了什么.

我得到的是一个空白页面(0字节文件),好像没有设置'网站重定向位置'元数据值.

我究竟做错了什么?

此外,这是否适用于AWS CloudFront?


我的S3控制台设置 S3控制台设置

值得注意的事情:

我有这个设置来托管一个静态网站.我正在使用ssl/https将我自己的证书上传并设置在cloudfront发行版上.除重定向对象外,所有页面似乎都有效.我已经尝试设置路由规则,但它们似乎在Cloudfront中不起作用.

我正试图通过cloudfront url和s3 url访问重定向(https://s3.amazonaws.com/ {bucket}/users/sign_in)

Mic*_*bot 122

对于S3中的类似网站的功能,例如重定向,html错误消息和索引文档,您不能使用REST端点(${bucket_name}.s3.amazonaws.com${bucket_name}.s3.${region}.amazonaws.com),因为这些功能仅由网站端点(${bucket_name}.s3-website.${region}.amazonaws.com)提供.

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html

要使Cloudfront中的行为可用,您需要将Cloudfront配置为使用此端点,而不是通过控制台中的自动完成提供的REST端点.

输入您的存储桶的Amazon S3静态网站托管端点.此值显示在Amazon S3控制台的" 静态网站托管"下的" 属性"页面上.

以此格式指定存储桶名称时,可以使用Amazon S3重定向和Amazon S3自定义错误文档.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html

请注意,Web端点不支持HTTPS,但您可以将Cloudfront配置为使用HTTP从存储桶中获取,即使客户端连接是HTTPS也是如此.


有用的提示:在使用CloudFront进行故障排除和测试更改时,用户经常会对进行更改和CloudFront开始展示新行为之间的明显"延迟"感到困惑.对于错误页面,CloudFront有一个默认的5分钟 错误缓存最小TTL ,可以防止它将失败页面的请求重新发送到原点,这是一个独立的计时器,与缓存行为中设置的最小/默认/最大TTL不同.特别是在测试时,您可能希望禁用这些计时器,并使用我在有关明显Amazon CloudFront Latency的问题的答案中提供的步骤强制重试每个后续返回错误的页面请求.

  • 您是否为原始协议策略配置了匹配查看器?s3网站端点不支持https.您需要将其设置为http.http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html (4认同)
  • 谢谢 - 花了一段时间看着这个想法我疯了 (3认同)
  • 谢谢!经过几天试图弄清楚为什么我不能让它工作,我终于找到了正确的问题和答案:) (3认同)
  • 谢谢 - 花了将近一天的时间来寻找这个! (2认同)
  • 需要注意的另一件事是,如果您使用 CloudFront OAI(源访问身份)来限制对 S3 存储桶的直接访问,它将不再起作用。另一种选择(尽管可以规避)是创建并转发自定义标头,并具有检查它的存储桶策略。例如 https://abridge2devnull.com/posts/2018/01/restricting-access-to-a-cloudfront-s3-website-origin/ (2认同)

Ken*_*iff 9

我遇到了同样的问题,重定向失败和零长度文件下载,但没有使用Cloudfront.

我的根本原因是我的DNS CNAME记录指向REST端点(static.righto.com.s3-us-west-2.amazonaws.com)而不是网站端点(static.righto.com.s3- website -us-west-2.amazonaws.com).更新CNAME记录修复了我的重定向.

此问题的另一个症状是缺少页面显示XML错误页面而不是HTML错误页面.

本文档解释了网站端点和REST端点之间的区别.