[英]AWS Cloudfront + Load Balancer, url changes from main domain to load balancer subdomain
我的設置如下:
所有這一切都是我想要的,但是......
原因是因為 EC2 看到來自負載均衡器的請求,因此它假定基本 url 是 elb.example.com 並相應地生成所有鏈接。
如何讓 EC2 將基本 url 視為 example.com ?
這種行為可能是因為默認情況下 CloudFront 將Host:
HTTP 請求標頭設置為源主機名,在本例中為 elb.example.com。 然后,應用程序可能會根據該主機名生成鏈接。
相反,如果您將 CloudFront 配置為將該標頭列入白名單以轉發到源,則瀏覽器 (example.com) 發送的 Host 標頭將由 CloudFront 發送到應用程序,因此應用程序的行為應該更像您期望的並在生成鏈接時使用該值。 這樣,CloudFront 仍然使用源域名進行 DNS 查找,以便建立到源(在本例中為 ELB)的 TCP 連接,但停止將該主機名注入 HTTP 請求標頭中。
您將在緩存行為設置 -> 基於所選請求標頭的緩存 -> 白名單下找到主機標頭。
與此同時,事情與最初的答案相比發生了一些變化(在 AWS 方面)。 因為它的核心仍然是正確的。 (將主機標頭添加到白名單。)現在您需要將其配置為自定義 Cloudfront 策略。 您需要在 Cloudfront AWS 控制台中創建此策略。
創建自定義策略后,您可以使用分配的“行為”選項卡配置這個新創建的策略。 這可以通過將“緩存策略”更改為您新創建的策略來完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.