Raj*_*esh 21 amazon-s3 amazon-web-services amazon-cloudfront amazon-route53
我创建了一个用于静态网站的cloudfront发行版.S3是原始服务器.现在,如果我们访问cloudfront url,它会重定向到S3位置.
d2s18t7gwlicql.cloudfront.net或test.telekha.in
在浏览器中显示 https://telekha-test-www.s3.ap-south-1.amazonaws.com/index.html#/dashboard
我期待https://test.telekha.in/#/dashboard
如果我通过curl 访问https://test.telekha.in,它将返回我的index.html文档
如果我通过curl 访问http://test.telekha.in它会返回
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>CloudFront</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但在浏览器中,http和https都重定向到https://telekha-test-www.s3.ap-south-1.amazonaws.com/index.html#/
请让我知道如何解决此问题.
Sla*_* II 108
使用 S3 存储桶的区域域名来配置 CloudFront 分配的来源,例如:{bucket-name}.s3.{region}.amazonaws.com.
根据 AWS 开发人员论坛上的讨论:Cloudfront 域重定向到 S3 源 URL,为新创建的 S3 存储桶创建和传播 DNS 记录需要时间。对于在美国东部(弗吉尼亚北部)区域创建的存储桶,此问题不可见,因为该区域是默认区域(后备)。
每个 S3 存储桶有两个域名,一个是全局的,一个是区域的,即:
{bucket-name}.s3.amazonaws.com{bucket-name}.s3.{region}.amazonaws.com如果您将 CloudFront 分配配置为使用全局域名,您可能会遇到此问题,因为 DNS 配置需要时间。
但是,您可以首先在源配置中使用区域域名来避免此 DNS 问题。
如果您使用的是 CloudFormation,则可以使用资源的RegionalDomainName输出属性AWS::S3::Bucket:
S3Bucket:
Type: AWS::S3::Bucket
CloudFrontDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Origins:
- DomainName: !GetAtt S3Bucket.RegionalDomainName
Run Code Online (Sandbox Code Playgroud)
同样,我强烈建议阅读这篇关于 S3 不同路径格式未来的博客文章:
Sim*_*son 21
首先要检查你是否认为你看到这个是运行下面的curl命令.如果它返回HTTP/1.1 307 Temporary Redirect,那么您将看到此问题.
$ curl -I https://YOUR_CF_DOMAINNAME.cloudfront.net/
HTTP/1.1 307 Temporary Redirect
Content-Type: application/xml
Content-Length: 0
Connection: keep-alive
x-amz-bucket-region: ap-southeast-2
Location: http://yourS3bucketname.s3-ap-southeast-2.amazonaws.com/
Date: Wed, 12 Jul 2017 00:20:27 GMT
Server: AmazonS3
Age: 1775
X-Cache: Hit from cloudfront
Via: 1.1 someid.cloudfront.net (CloudFront)
X-Amz-Cf-Id: someguid==
Run Code Online (Sandbox Code Playgroud)
我发现这个问题的最佳描述是:
S3更新全局REST端点层次结构*.s3.amazonaws.com的DNS,并在创建存储桶后的短时间内向存储区的右侧区域发送请求,并且CloudFront似乎依赖于此将请求发送到右侧地点.在初始更新完成之前,S3将返回重定向,CloudFront将该重定向返回给浏览器.~ michael-sqlbot
鉴于此问题实际上是由于在S3中配置存储桶时发生的S3存储桶名称的内部DNS传播(不是100%清除,但似乎非常可能),那么应该可以通过配置来避免此问题在配置Cloudfront发行版之前,在S3中的公共网站,并且根据doco,将S3公共Web名称配置为云端源而不是s3桶名.
作为参考,我将S3存储桶名称和S3网站名称配置为Cloudfront起源,我可以说它们都可以工作!(最终?)
参考文献:
| 归档时间: |
|
| 查看次数: |
11082 次 |
| 最近记录: |