在Nginx反向代理中,要获取真实IP地址,需要注意客户端IP可能会被代理服务器篡改。要解决这个问题,可以通过以下步骤获取真实IP地址:

1. 配置Nginx的真实IP模块

Nginx提供了 ngx_http_realip_module模块,用于获取真实IP地址。首先,确保Nginx已经编译安装了该模块。

2. 设置真实IP模块的配置

在Nginx配置文件中,找到 http 块,并添加以下配置:

http {
    # ...

    # 设置允许设置真实IP的代理服务器地址,可以是Nginx代理服务器的IP或者其他代理服务器的IP
    set_real_ip_from  192.168.0.0/24;
    set_real_ip_from  10.0.0.0/8;

    # 设置要获取真实IP的header字段,通常是X-Real-IP或X-Forwarded-For
    real_ip_header    X-Real-IP;
    # 或者
    # real_ip_header    X-Forwarded-For;

    # ...
}

在这个例子中,我们设置允许设置真实IP的代理服务器地址为 192.168.0.0/2410.0.0.0/8。同时,我们指定获取真实IP的header字段为 X-Real-IP。如果您的代理服务器将真实IP保存在 X-Forwarded-For header字段中,可以使用 real_ip_header X-Forwarded-For;

3. 重新加载Nginx配置

完成配置后,使用以下命令重新加载Nginx配置,使更改生效:

sudo nginx -s reload

4. 获取真实IP

现在,Nginx会从指定的header字段中获取真实IP地址。您可以在后端服务器或应用程序中,通过查找指定的header字段,来获取客户端的真实IP地址。

注意:在实际部署中,根据您的网络架构和代理配置,可能需要适当地调整 set_real_ip_fromreal_ip_header的配置,以确保正确获取真实IP地址。

通过这个教程,您已经学会了在Nginx反向代理中获取客户端真实IP地址的方法,确保应用程序能够正确处理客户端的真实IP信息。


香港五网CN2网络云服务器链接:www.tsyvps.com

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。

蓝易云是一家专注于香港及国内数据中心服务的提供商,提供高质量的服务器租用和云计算服务、包括免备案香港服务器、香港CN2、美国服务器、海外高防服务器、国内高防服务器、香港VPS等。致力于为用户提供稳定,快速的网络连接和优质的客户体验。
最后修改:2023 年 07 月 27 日
如果觉得我的文章对你有用,请随意赞赏