gin+Nginx获取真实的客户端IP
gin获取客户端真实IP方法如下:
func xx(c *gin.Context){
ip := c.ClientIP()
}
当使用Nginx为Golang gin程序做反向代理(端口转发)或负载均衡时,gin得到的客户端IP为127.0.0.1,这是由于Nginx没有正确配置导致;
解决方法
在Nginx配置中设置两个HTTP Header,X-Real-IP
和X-Forward-For
:
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $remote_addr;
}