nginx 获取用户真实ip进行判断是否要屏蔽
在nginx中获取用户真实IP地址可以通过以下几种方式:
- 使用HTTP头中的X-Forwarded-For字段获取用户真实IP地址。该字段可以被代理服务器添加到HTTP头中,以传递用户真实IP地址。在nginx中可以通过以下配置将该字段作为用户真实IP地址来使用:
set_real_ip_from 10.0.0.0/8;
real_ip_header X-Forwarded-For;
其中,set_real_ip_from指定代理服务器的IP地址段,real_ip_header指定使用的HTTP头字段。
- 使用ngx_http_realip_module模块获取用户真实IP地址。该模块可以将代理服务器的IP地址转换成用户真实IP地址,以便进行屏蔽等操作。在nginx中可以通过以下配置开启该模块:
set_real_ip_from 10.0.0.0/8;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
其中,real_ip_recursive指定是否递归转换代理服务器的IP地址。
- 使用$remote_addr变量获取用户IP地址。该变量可以获取请求的来源IP地址,但如果请求经过代理服务器,则无法获取用户真实IP地址。在nginx中可以通过以下配置使用该变量:
if ($remote_addr != 10.0.0.1) {
deny all;
}
其中,if语句可以判断请求的来源IP地址是否为指定的IP地址,如果不是则拒绝请求。
原文地址: http://www.cveoy.top/t/topic/bb6P 著作权归作者所有。请勿转载和采集!