我的设置如下:
所有这一切都是我想要的,不过…..
原因是因为EC2看到来自负载平衡器的请求,所以它假定基本url是elb.example.com并相应地生成所有链接。
如何使EC2看到基地url为example.com?
此行为可能是由于默认情况下,CloudFront将Host:HTTP请求标头设置为原始主机名,在本例中为elb.example.com。 那么应用程序可能会根据该主机名生成链接。
如果将CloudFrontconfiguration为将该标题列入白名单以便转发到源,则由浏览器(example.com)发送的主机标头将由CloudFront发送到应用程序,因此应用程序的行为应该更像您期望的并在生成链接时使用该值。 由此,CloudFront仍然使用原始服务器主机名执行DNS查找,以便build立到源(本例中为ELB)的TCP连接,但是停止将该主机名注入到HTTP请求标头中。
这已经被@ michael-sqlbot回答了