Amazon-Web-Services
為什麼我的 AWS NLB 的多個地址記錄中只有一個同時工作?
我正在使用 AWS 網路負載均衡器。當我發出
nslookup dualstack.app.elb.us-east-2.amazonaws.com
時,輸出是Non-authoritative answer: Name: dualstack.app.elb.us-east-2.amazonaws.com Address: 3.xxx.xxx.176 Name: dualstack.app.elb.us-east-2.amazonaws.com Address: 18.xxx.xxx.40
我注意到這些 IP 中的每一個都位於不同的可用區域中,並且一次只有一個 IP 有效。
dualstack.app.elb.us-east-2.amazonaws.com/healthcheck
向via發出請求curl
只有一半的時間有效。但是,從我的瀏覽器發出相同的請求 100% 的時間都有效,因為 chrome 有自己的處理循環 DNS 的方法(相關:https ://serverfault.com/a/774411,https : //serverfault.com /a/852421 )這是 NLB 的預期行為,即當存在多個 IP 時,一次只有一個 IP 可以工作?
上面的答案告訴你原因,但不告訴你如何解決。您說過您使用的是 ELB,它通常指的是經典的 ELB,而不是 ALB / NLB。使用 ELB,您可以啟用跨區域負載平衡。預設情況下,它通過 ALB 啟用,因此如果您使用其中一個,這對您來說不是正確的答案 - 請更新您的問題並讓我知道是否是這種情況。
aws elb modify-load-balancer-attributes --load-balancer-name my-loadbalancer --load-balancer-attributes "{\"CrossZoneLoadBalancing\":{\"Enabled\":true}}"
或者
使用控制台啟用跨區域負載平衡
- 在https://console.aws.amazon.com/ec2/打開 Amazon EC2 控制台。
- 在導航窗格的負載均衡下,選擇負載均衡器。
- 選擇您的負載均衡器。
- 在描述選項卡上,選擇更改跨區域負載平衡設置。
- 在配置跨區域負載平衡頁面上,選擇啟用。
- 選擇保存。