【问题标题】:AWS Cloudfront drops custom domain name and redirects to Elastic BeanstalkAWS Cloudfront 删除自定义域名并重定向到 Elastic Beanstalk
【发布时间】:2019-02-25 06:56:07
【问题描述】:

我有一个带有 CloudFront 服务 SSL (ASP.Net MVC) 的弹性 beanstalk 环境。 CloudFront 有一个自定义域名。一切正常,直到用户的会话 cookie 过期或用户尝试在未登录的情况下访问安全区域并被重定向到登录页面。当这两种情况中的任何一种发生时,用户会以某种方式重定向到实际的弹性 beanstalk 环境,并且它还会丢弃 SSL,因此如果用户没有注意到他们将在没有 SSL 的情况下发送登录凭据。例如,如果用户在没有登录的情况下访问https://custom.domain.com/admin,他们将被重定向到http://aws.elasticbeanstalkcontainer.com,会话到期也是如此。在迁移到 AWS 之前,它在 IIS10 上运行良好。似乎当 EC2 以某种方式发回重定向时,CloudFront 缺少它并且没有将其更改为自定义域名。任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 通过仔细检查代理后面的配置应如何更改,确保您的 IIS10 配置正确执行重定向。

标签: asp.net-mvc amazon-web-services amazon-ec2 amazon-cloudfront amazon-elastic-beanstalk


【解决方案1】:

监控来自您的服务器的重定向响应并用不同的域名重写它们不是 CloudFront 的工作。那不是它的作用。您必须配置在 Elastic Beanstalk 上运行的应用程序,以了解在将重定向响应发送回客户端时应该使用的正确域名。

【讨论】:

  • 这是正确的。如果源已正确配置,则将 CloudFront 缓存行为设置中的 Host 标头列入白名单也可以解决此问题。
  • @Mark B CloudFront 是将弹性 beanstalk 源重写为 CloudFront 域或自定义域 CName(在我的情况下)的代理,包括 https 到 http 的 beanstalk,因为它只支持 http。这就是它的工作。在带有 SSL 的内部 IIS10 服务器上一切正常。我似乎找不到在我的 .Net Identity 应用程序中对域名进行硬编码的方法。我尝试过 URL 重写,但它中断了,因为 beanstalk 只支持 http。我对 AWS 不是很熟悉,你是如何让它在你的 .Net MVC 环境中工作的?谢谢。
  • @Sam.A. CloudfFront 代理 TO 服务器的流量。无论服务器响应什么,它都会返回给客户端。它不会重写来自服务器的流量。它并没有真正“重写”任何东西(除了缓存头),它只是将请求转发到适当的目的地,如果它不在缓存中。顺便说一下,这是基本的 CDN 内容,它并不特定于 AWS 或 CloudFront。我不是 .NET MVC 开发人员,但我知道这就是它在 Java、Python、NodeJS 和其他环境中的工作方式,我确信在 .NET 中也是如此。
猜你喜欢
  • 2019-11-28
  • 2016-11-14
  • 2018-09-05
  • 2013-03-13
  • 2019-01-10
  • 2021-11-06
  • 2017-05-22
  • 2012-08-30
  • 2015-05-12
相关资源
最近更新 更多