Cloud Run 客户端请求 IP 地址被代理 Python Fast API 覆盖

时间:2021-07-31 15:12:46

标签: python google-cloud-platform fastapi google-cloud-run

在 Cloud Run 服务上运行的 Web 应用程序中获取真实用户请求 IP 地址存在问题。由于某种原因,Web 应用程序为所有用户请求获取相同的 IP 地址 - 169.254.8.129 。我假设它是云运行服务前面的负载平衡器,用他自己的 IP 覆盖请求。 我已经用 Cloud Run 中的 Flask、FastApi 和 ASP.NET Core 上的不同应用程序仔细检查了这个问题。所有应用都返回相同的结果并且都有相同的问题。

但是,当我在 VM 上检查这些应用程序时,一切正常。

How can I get the user's IP-Address in my Cloud-Run Flask app?

我已经找到了部分答案,但仍然无法为 FastApi 处理相同的问题。

1 个答案:

答案 0 :(得分:2)

地址 169.254.8.129 是位于您的 Cloud Run 服务前面的代理的地址。

您可以从 HTTP 标头 X-Forwarded-For 中提取 IP 地址列表。此列表通常包括客户端以及客户端与您的应用程序之间的每个代理或负载平衡器。

X-Forwarded-For