nginx ngx_http_realip 模块是比较重要的,我以前也大概说过,同时网上关于此模块的资料也不少,今天就碰到了一个获取真实ip 的问题
记录下
参考业务模型
问题
以前的配置,waf 会自动携带ip 到X-Forwarded-For,同时会附加最后一跳的ip
real_ip_header X-Forwarded-For;
real_ip_recursive on;
问题就出在没有仔细处理header,结果每次取到的ip 都是waf 节点的(应该是header 处理顺序的问题)
解决方法
实际上官方文档也已经写了,应该添加上可信ip 源 set_real_ip_from
指令
参考
real_ip_header X-Forwarded-For;
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_recursive on;
说明
实际上获取真实ip 的方法很多,还是得好好学习阅读官方文档,可以减少我们不少排错问题的时间
参考资料
https://nginx.org/en/docs/http/ngx_http_access_module.html
https://nginx.org/en/docs/http/ngx_http_realip_module.html