神秘的CloudFront"糟糕的要求"

Bil*_*kil 20 cname domain-name amazon-cloudfront

我已经设置了一个新的域和Web服务器,以及一个CloudFront分发服务器.

CloudFront在其自己的域上成功提供该站点:d1lnegrqin0up5.cloudfront.net

我希望mpe.io(没有www)转到Web服务器,www.mpe.io转到CloudFront分发.因此,我为www.mpe.io设置了指向上述CloudFront域的CNAME记录.

我给了它几个小时,www.mpe.io转到CloudFront(在结果页面上显示"由cloudfront生成")但是所有请求都很简单,导致错误的请求错误.

请注意,如果我直接进入CloudFront域,一切正常.如何以与CloudFront域相同的方式使www.mpe.io成功提供文件?

具体细节:

域DNS记录:

  • 名称,TTL,类型,记录
  • mpe.io.,3600,A,101.0.76.155
  • www.mpe.io.,3600,CNAME,d1lnegrqin0up5.cloudfront.net
  • *.mpe.io.,3600,A,101.0.76.155

分配设置:

  • 交货方式:网络
  • Cookie记录:关闭
  • 分发状态:已部署
  • 价格等级:使用所有边缘位置(最佳性能)
  • 状态:已启用
  • 替代域名(CNAME): - (这可能很重要吗?)
  • SSL证书:默认CloudFront证书(*.cloudfront.net)
  • 域名:d1lnegrqin0up5.cloudfront.net
  • 自定义SSL客户端支持: -
  • 默认根对象:/ index

Bil*_*kil 40

都好!我在写作时回答了我的问题.

这是关于分发设置中的备用域名(CNAME)的字段.当我添加www.mpe.io作为其中一个并给它一些时间时,它最终工作正常.

  • 这是因为浏览器在"Host:"标题中发送地址框中显示的任何主机名.DNS中的CNAME不会改变浏览器的行为.如果没有为完全"Host:"标题配置CloudFront分配,它应该假设与您的分发(备用域名配置)相关联,CF无法知道*哪个*分发应该处理请求.没有它,CF绝对没有什么可继续的,因此,"糟糕的要求". (4认同)
  • 当然DNS显然工作正常,否则您不会看到CloudFront*出现错误*...但是为了回应查询您的`*.cloudfront.net`主机名而返回的IP地址被数十或数百个共享或数以千计的其他发行版.浏览器发送的`Host:`标头是CloudFront使用的机制,用于计算*处理请求的*分配,"备用域名"配置是如何配置这些. (3认同)
  • 当请求到达时,它只是"在"IP地址.浏览器发送`Host:`标头以指示正在请求的站点,因为基本上任何Web服务器都可以提供多个站点.CNAME在将原始主机名解析为目标IP地址时引用的任何中间主机名都将丢失.Cloudfront只会知道您正在寻找x.cloudfront.net端点(如果这是直接在浏览器中输入的端点). (3认同)
  • 冒着被无意中错误引用的风险,发行版*域名*仅限于您... xxxxxxxxxx.cloudfront.net就是您的全部,但HTTP和DNS的本质是目标系统只知道您最初的网站**试图访问(www.mpe.io)并且无法通过指向x.cloudfront.net主机名的CNAME或具有静态IP的A记录来了解您是如何从此处到达的,或者甚至是本地计算机"主机"文件中的条目. (2认同)