四层负载均衡:后端获取的直接就是用户的真实IP。
七层负载均衡:需要对应用服务器进行配置,然后使用X-Forwarded-For的方式获取客户端的真实IP地址。
真实的客户端IP会被负载均衡放在HTTP头部的X-Forwarded-For字段,格式如下:
X-Forwarded-For: 用户真实IP, 代理服务器1-IP, 代理服务器2-IP,...
当使用此方式获取客户端真实IP时,获取的第一个地址就是客户端真实IP。
修改Nginx的配置文件nginx.conf
,增加两个配置
set_real_ip_from IP_address
real_ip_header X-Forwarded-For;
示例:
set_real_ip_from 100.97.74.0/24;
set_real_ip_from 192.168.181.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
含义
比如,服务器获取了三个IP分别为:100.97.74.123,192.168.181.23,118.23.56.21
如果real_ip_recursive on;
设置了on,100.97.74.123,192.168.181.23有在set_real_ip_from中出现,所以118.23.56.21为真实用户IP。
如果real_ip_recursive off;
设置了off,默认就是off,100.97.74.123,有在set_real_ip_from中出现,不会继续匹配,所以其它两个IP都是真实用户IP。
如果有用cdn
,waf
,负载均衡
所有的IP段都要加上