m0m*_*eni 7 networking cdn amazon-s3 amazon-web-services amazon-cloudfront
我有一个域名formulagrid.com.
我使用AWS S3将其作为静态网站托管.我的问题是我想将www子域重定向到裸域,如下所示:
https://www.formulagrid.com -> https://formulagrid.comhttp://www.formulagrid.com -> https://formulagrid.com如果两者都设置为静态网站托管,亚马逊提供从S3存储桶到S3存储桶的URL重定向.
所以我要做的就是设置两个桶:
formulagrid.com - 实际网站www.formulagrid.com - 仅用于重定向到实际网站如果您仅通过HTTP操作,这可以完美地运行,但S3绝对不支持HTTPS.
可以使用HTTPS连接到S3静态网站的方法是在S3存储桶前设置CloudFront分配.然而,CloudFront虽然提供HTTPS,但主要用作CDN.
最初,我在拥有实际站点的S3存储桶前面设置了一个CloudFront分配.一切似乎都在运作:网站分布在CDN上,它有HTTPS,HTTP重定向到HTTPS.
有一个例外.
https://www.formulagrid.com 是一个完全破碎的页面在尝试找到错误的来源一段时间之后,我意识到这是因为它没有通过CDN,并且尝试通过HTTPS访问S3不起作用.
最后,我最终要做的是配置另一个发行版,以便坐在wwwS3存储桶前面,以便可以通过HTTPS访问它.这就是我担心的地方,因为正如我之前提到的,CloudFront的主要目的是成为CDN.
让CDN坐在刚刚重定向到另一个网址的网址前面对我没有任何意义.此外,它还提出了一个问题,即每次点击www子域名的请求是否会被双重收费,因为它在重定向后会遇到其他CloudFront分配.
这是令人沮丧的,因为我正在尝试使用Lambda进行"无服务器"架构,并且必须配置EC2实例才能进行url重写,这不是我想要做的事情,除非它是我的最后手段.
如果亚马逊提供任何形式的URL重写或者如果CloudFront本身确实重定向,那么解决方案将是微不足道的,但据我所知,这些都不存在(如果他们这样做,请告诉我).
我是AWS的新手,所以我希望有更多经验的人可以指出我正确的方向.
你的想法太狭隘 - 这种设置没有任何问题.
如果亚马逊提供任何形式的URL重写,解决方案将是微不足道的
他们这样做 - 空桶.
S3完全不支持HTTPS.
不适用于网站托管的存储桶,不是......但CloudFront可以.
CloudFront不仅仅是CDN.它也是一个SSL卸载器,Host:标题重写器,路径预置器,地理定位器,地理限制器,安全内容网关,http到https重定向器,错误页面定制器,根页面替换器,Web应用程序防火墙,原始标头注入器,动态内容gzipper,基于路径的多重来源http请求路由器,查看器平台标识符,DDoS缓冲区,区域顶点别名目标...所以不要太挂在"CDN"上或者你正在将一个服务堆叠在另一个服务面前 - CloudFront是在很大程度上,设计是为了补充S3.他们每个人都专注于存储和交付的某些方面.
所以,你做对了...大部分,无论如何......创建一个存储桶,为网站托管配置它,将其设置为将所有请求重定向到另一个站点(非www)并将CloudFront分发放在前面它 - 使用CloudFront中的存储桶的网站端点URL,而不是下拉列表中的存储桶 - 配置了高TTL,以便CloudFront向S3发送最少数量的请求然后放入您的(免费!)来自Amazon Certificate Manager的SSL证书.HTTPS备用域路由:已解决.没有服务器,没有故障排除,而且便宜.该唯一收费的使用-没有任何背景的经常性费用,因为将与服务器.
额外信用:为最便宜的费率层配置重定向CloudFront分配.从更昂贵的位置重定向将被路由到更便宜的边缘位置,或者 - 在CloudFront的选择 - 可以在更高成本的位置服务,但以较低的费率收费.
请注意,大多数情况下,CloudFront应该从其缓存中提供来自S3的重定向...当您配置存储桶以将所有请求重定向到另一个主机名时,重定向是301 永久重定向 - 浏览器应该缓存它们自己.
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |