golang的gin框架如果前面有代理 获取真实ip的说明
gin中获取IP有两个方法:
gin.RemoteIp()
他是从 Request.RemoteAddr 中获取ip,如果没有代理的话,是没有啥问题的
gin.ClientIP()
他是从 header 中获取 ip,默认是 (defaulting to [X-Forwarded-For, X-Real-Ip]).如果报头不符合语法,或者远端IP不对应一个受信任的代理,则返回远端IP(来自Request.RemoteAddr)。
有代理时
其实不管哪种情况,用第二种方法就行了。有代理时,记得设置 nginx 的 下面
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
0顶
0 踩
共 0 条评论