相关疑难解决方法(0)

使用单个CloudFront分配支持HTTPS URL重定向

我有一个域名formulagrid.com.

我使用AWS S3将其作为静态网站托管.我的问题是我想将www子域重定向到裸域,如下所示:

  • https://www.formulagrid.com -> https://formulagrid.com
  • http://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的新手,所以我希望有更多经验的人可以指出我正确的方向.

networking cdn amazon-s3 amazon-web-services amazon-cloudfront

7
推荐指数
1
解决办法
2068
查看次数