在 X-Forwarded-For 中找到的私有地址空间 IP

Rha*_*aun 4 nginx reverse-proxy x-forwarded-for private-ip google-cloud-platform

我在 Google Cloud (HTTPS) 负载均衡器后面使用 nginx 进行反向代理,所以我添加了 X-Forwarded-For标头,以便后端可以提取客户端(浏览器)IP。

今天早上我注意到10.x.x.x日志中有一个IP,这怎么可能?

Esa*_*nen 6

您的日志记录如何解释包含多个 IP 地址的标头?如果它使用第一个 IP 地址而不是正确的 IP 地址,这很可能是某人的正向代理而不是您的反向代理添加的地址。

标头及其内容记录在 GCP设置 HTTP(S) 负载平衡文章中:

X-Forwarded-For: <unverified IP(s)>, <immediate client IP>, <global forwarding rule external IP>, <proxies running in GCP> (仅限请求)

请求经过的中介所附加的以逗号分隔的 IP 地址列表。如果您在 GCP 中运行将数据附加到X-Forwarded-For标头的代理,那么您的软件必须考虑这些代理的存在和数量。 负载平衡器仅提供<immediate client IP><global forwarding rule external IP>条目。列表中的所有其他条目都未经验证而传递。

只需相应地调整您的日志记录。

  • 让负载均衡器或反向代理发送包含您感兴趣的实际客户端 IP 地址的完全独立的标头通常也是一个好主意。在 GCP 上,[用户定义的请求标头](https://cloud.google.com /load-balancing/docs/backend-service#user-defined-request-headers) 可以做到这一点。 (2认同)