用的是阿里云传统型负载均衡 CLB,如果客户端直接访问负载均衡,后端服务器可以通过 X-Forwarded-For 请求头获取到客户端真实IP。
但如果在负载均衡之前再加一层 nginx 反向代理,通过 X-Forwarded-For 获取到的却是 nginx 服务器的IP地址,获取不到客户端真实IP,请问如何解决这个问题?
对于阿里云负载均衡来说,前置 nginx 也是一个客户端,丢弃其发过来的 X-Forwarded-For 请求头是合理的,不然其他客户端可以通过 X-Forwarded-For 伪造 IP 地址
不好意思,是我弄错了,阿里云负载均衡不会丢弃前置 nginx 转发过来的 X-Forwarded-For,而是在 X-Forwarded-For 中追加前置 nginx 服务器的 IP 地址
比如,客户端真实 IP 是 192.168.0.1,前置 nginx 服务器 IP 是 10.0.0.1,阿里云负载均衡转发过来的 X-Forwarded-For 是这样的
X-Forwarded-For: 192.168.0.1, 10.0.0.1
除了在 X-Forwarded-For 中追加前置 nginx 的 IP 地址,阿里云负载均衡还会通过 RemoteIp
请求头传递前置 nginx 的 IP 地址
意思是:[客户端] → [Nginx反向代理] → [阿里云负载均衡] → [后端服务器] ?
在自己的 ng中配置 X-Forwarded-For 可以么?
要代理层层转接 X-Forwarded-For 和 X-Forwarded-Proto 标头;最外部代理禁止转接防止伪造;
配置 ASP.NET Core 以使用代理服务器和负载均衡器里面有介绍最后有受信任的代理IP白名单
dudu开始解决国外ip攻击博客园的问题了
– echo_lovely 3个月前