获取用户真实IP地址Nginx转发配置方法

作者:itData 发布时间:2022-07-12

        在做商城系统的时候需要用到用户的真实IP,根据用户真实IP来获取所在区域,由于服务器使用的Nginx做代理,所以服务器端下方代码一直返回的IP是127.0.0.1,Nginx没有把用户真实IP进行转发,这时候就需要配置一下Nginx,只需要在location节点下增加以下两行配置即可。

proxy_set_header X-Forward-For $remote_addr;
proxy_set_header X-real-ip $remote_addr;

        服务器端获取用户真实IP源码如下:

func RemoteIp(req *http.Request) string {
    remoteAddr := req.RemoteAddr
    if ip := exnet.ClientPublicIP(req); ip != "" {
        remoteAddr = ip
    } else if ip := exnet.ClientIP(req); ip != "" {
        remoteAddr = ip
    } else if ip := req.Header.Get("X-Real-IP"); ip != "" {
        remoteAddr = ip
    } else if ip = req.Header.Get("X-Forwarded-For"); ip != "" {
        remoteAddr = ip
    } else {
        remoteAddr, _, _ = net.SplitHostPort(remoteAddr)
    }

    if remoteAddr == "::1" {
        remoteAddr = "127.0.0.1"
    }

    return remoteAddr
}
【声明】:LifeAdd生活方式登载该文章目的是为更广泛的传递行业信息,不代表赞同其观点或证实其描述,本网站亦不为其版权负责。若无意侵犯您合法权益的内容,请联系本网站,核实后将立即予以删除!
标签: 用户真实IP获取 Nginx转发真实IP配置

高品质生活资讯平台

『LifeAdd生活方式』是一家引领高端品质生活的互联网平台,聚焦前沿时尚风潮,为高品质人群推送生活资讯和商业信息,链接高端商业与高端人群生态圈。

业务范围

经营规则

联系我们
北京市丰台丽泽金融商务区平安幸福中心A座7层
82918700@qq.com
微信号:82918700

2013-2024 LifeAdd生活方式 www.lifeadd.cn 版权所有 | 御融(北京)科技有限公司 All Rights Reserved
增值电信业务经营许可证:京B2-20200664 | 京ICP备14004911号-7