Google 云平台负载均衡器客户端源 IP/地理位置问题

问题描述 投票:0回答:1

我的 GCE Http(s) 负载均衡器出现问题。它没有检测到正确的 X-Client-Geo-Region 等。

因为我们需要使用 ssls 来服务,目前有 3000 个(每天都在增加)自定义域,所以我找不到另一种方法来构建这个基础设施而不需要自定义 ssl 终止。我想使用云装甲来删除另一个需要维护的东西,否则我会在 nginx 代理上安装 ModSecurity。

EntrypointA 不起作用,仅显示美国地区。
EntrypointB 按预期工作,检测正确的区域 (GB)。 Ofc 这绕过了 SSL。

                                            EntrypointB
                                                 |
                                                 V
EntrypointA -> SSL Termination Service -> GCE Loadbalancer -> GCE Instance (Http server)
                   (Nginx proxy)                     ^
                                                     |
                                                Cloud Armor

到目前为止,我已经尝试设置我可以在代理中找到的每个标头,但负载均衡器不查看标头,或者这是我不知道的标头。

我尝试过的标题

proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP          $remote_addr;
proxy_set_header X-User-IP          $remote_addr;
proxy_set_header X-ProxyUser-Ip     $remote_addr;
proxy_set_header True-Client-IP     $remote_addr;

当我检查服务器上的标头时,它们看起来都是正确的(不包括地理标头)。 Forwarded-For 是正确的,X-Real-IP 是正确的。

google-cloud-platform google-compute-engine google-cloud-load-balancer
1个回答
0
投票

根据 doc GCP HTTP(S) LB,TLS 在世界各地的不同位置结束,以最大程度地减少延迟。因此,具有地理控制功能的最佳产品是网络负载均衡器,以便终止后端实例上的 TLS。

也许这种方法不适合您的需求,因此您可能想探索 Cloudflare

© www.soinside.com 2019 - 2024. All rights reserved.