gpt4 book ai didi

amazon-web-services - AWS CloudFront 重定向到 S3 存储桶

转载 作者:行者123 更新时间:2023-12-03 11:46:38 27 4
gpt4 key购买 nike

我创建了一个 CloudFront 分配来为静态网站提供服务。 S3 是原始服务器。
现在,如果我们访问 CloudFront URL,它会重定向到 S3 位置。d2s18t7gwlicql.cloudfront.nettest.telekha.in在浏览器中显示
https://telekha-test-www.s3.ap-south-1.amazonaws.com/index.html#/dashboard
我在期待 https://test.telekha.in/#/dashboard
如果我访问 https://test.telekha.in通过 curl 返回我的 index.html文件
如果我访问 http://test.telekha.in通过 curl 它返回

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>CloudFront</center>
</body>
</html>
但是在浏览器中,HTTP 和 HTTPS 都重定向到 https://telekha-test-www.s3.ap-south-1.amazonaws.com/index.html#/
请让我知道如何解决这个问题。

最佳答案

快速解决方案

使用 S3 存储桶的区域域名来配置 CloudFront 分配的来源,例如:{bucket-name}.s3.{region}.amazonaws.com .

说明

根据 AWS 开发人员论坛上的讨论:Cloudfront domain redirects to S3 Origin URL ,为新创建的 S3 存储桶创建和传播 DNS 记录需要时间。对于在美国东部(弗吉尼亚北部)区域创建的存储桶,此问题不可见,因为该区域是默认区域(后备)。

每个 S3 存储桶都有两个域名,一个是全局的,一个是区域的,即:

  • 全局{bucket-name}.s3.amazonaws.com
  • 区域{bucket-name}.s3.{region}.amazonaws.com

  • 如果您将 CloudFront 分配配置为使用全局域名,您可能会遇到此问题,因为 DNS 配置需要时间。

    但是,您可以首先在源配置中使用区域域名来避免此 DNS 问题。

    CloudFormation 模板

    如果您使用的是 CloudFormation,则可以使用 RegionalDomainName AWS::S3::Bucket 的输出属性资源:

    S3Bucket:
    Type: AWS::S3::Bucket

    CloudFrontDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
    DistributionConfig:
    Origins:
    - DomainName: !GetAtt S3Bucket.RegionalDomainName

    更多信息

    同样,我强烈建议阅读这篇关于 S3 不同路径格式 future 的博客文章:
  • Amazon S3 Path Deprecation Plan – The Rest of the Story
  • 关于amazon-web-services - AWS CloudFront 重定向到 S3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38735306/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com