使用CloudFront将流量从一个域转发到另一个域

时间:2019-07-03 21:51:22

标签: amazon-web-services amazon-s3 amazon-cloudfront amazon-elastic-beanstalk

我们有两个域:

  • www.example.com
    • 完整的管理员应用程序(仅限管理员和管理员访问)
    • 位于原始CloudFront发行版的后面
    • 作为静态网站托管在亚马逊s3上的资产
    • 在弹性beantalk(ec2,elb,eb)上托管的API
  • www.new-example.com
    • 技术人员执行一项功能的小型应用程序(上传文档)
    • 位于新的CloudFront发行版中
    • 将api / *路由到www.example.com路由到的同一ELB起源的新起源和行为
    • 作为静态网站托管在亚马逊s3上的资产

技术人员将使用www.new-example.com,而我的客户不希望他们知道www.example.com。

www.new-example.com没有api;相反,我想使用www.example.com上的现有api。

使用CloudFront,如何以不公开管理员url的方式将请求从www.new-example.com/api/*路由到www.example.com/api / *?

更新1

这是来自管理站点的身份验证请求,该请求成功返回了正确的有效负载:

curl -X POST -H "Content-Type: application/json" https://www.example.com/api/user/authenticate -d '{"email":"me@example.com", "password":"foobar1!"}'

当我使用新的URL提交时,CloudFront会抛出504:

curl -X POST -H "Content-Type: application/json" https://www.new-example.com/api/user/authenticate -d '{"email":"me@example.com", "password":"foobar1!"}'

我知道CF行为是有效的,因为如果我将“ api”替换为乱码,则会触发默认(*)行为(仅接受GET / HEAD),从而引发其他错误。

现在我只需要弄清楚如何防止504

0 个答案:

没有答案