在 golang gin controller 中使用
c.ClientIP()
获取请求的 IP,但是获取到的是 127.0.0.1.
估计是 Nginx 在转发请求给 golang 时,没有配置好。
解决方法
增加两行配置即可。
location /go/ {
proxy_set_header X-Forward-For $remote_addr;
proxy_set_header X-real-ip $remote_addr;
proxy_pass http://127.0.0.1:8080/go/;
}
注意 proxy_pass http://127.0.0.1:8080/go/; 放在最后一行。
reload nginx,测试,果然可以。