在nginx中获取用户真实IP地址可以通过以下几种方式:

  1. 使用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头字段。

  1. 使用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地址。

  1. 使用$remote_addr变量获取用户IP地址。该变量可以获取请求的来源IP地址,但如果请求经过代理服务器,则无法获取用户真实IP地址。在nginx中可以通过以下配置使用该变量:
if ($remote_addr != 10.0.0.1) {
    deny all;
}

其中,if语句可以判断请求的来源IP地址是否为指定的IP地址,如果不是则拒绝请求。

nginx 获取用户真实ip进行判断是否要屏蔽

原文地址: http://www.cveoy.top/t/topic/bb6P 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录