1回答
- 新しい順
- 投票が多い順
- コメントが多い順
0
【以下的回答经过翻译处理】 除非客户在CloudFront配置了转发Host Header,否则客户的源站将接收在CloudFront中配置的源站主机名(即ELB的主机名)。
因此假设网站的公共主机名(且在CloudFront上设置了CNAME)为www.mysite.com,而ELB的主机名为my-loadbalancer.us-west-2.elb.amazonaws.com。当客户端发送:
GET /page HTTP/1.1
Host: www.mysite.com
如果未将Host标头转发到源站,则源站将接收到以下请求:
GET /page HTTP/1.1
Host: my-loadbalancer.us-west-2.elb.amazonaws.com
而如果未通过HTTPS发送,则源站可能会简单地将https://,Host标头和path连接起来发出重定向响应:
HTTP/1.1 301 Moved Permanently
Location: https://my-loadbalancer.us-west-2.elb.amazonaws.com/page
CloudFront会将此返回给客户端,因此客户端将直接转到ELB。
正如其他人指出的,您可以在CloudFront上配置将HTTP请求重定向到HTTPS,并强制所有请求到源站都是HTTPS。这样就能解决问题,因为源站重定向将永远不会被执行。
如果源站重定向需要执行额外的逻辑,您可以配置 CloudFront 将 Host 标头转发到源站,这样它就会重定向到公共主机名,或者您可以修改源站,将公共主机名作为配置存储,并重定向到公共主机名,而不是使用 Host 标头。
関連するコンテンツ
- 質問済み 8年前
- AWS公式更新しました 7ヶ月前
- AWS公式更新しました 2年前
- AWS公式更新しました 1年前