一次nginx 请求真实ip 问题处理

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
https://www.cnblogs.com/rongfengliang/p/16280390.html

posted on 2022-08-17 22:39  荣锋亮  阅读(215)  评论(0编辑  收藏  举报

导航