前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go 语言的库文件放在哪里?如何通过nginx代理后还能正确获取远程地址

go 语言的库文件放在哪里?如何通过nginx代理后还能正确获取远程地址

作者头像
李海彬
发布2018-03-19 16:01:04
1.5K0
发布2018-03-19 16:01:04
举报
文章被收录于专栏:Golang语言社区Golang语言社区

/usr/local/Cellar/go/1.5.1/libexec/src/


他的RemoteAddr 是从哪里获取?

代码语言:javascript
复制
func (c *conn) RemoteAddr() Addr {
	if !c.ok() {
		return nil
	}
	return c.fd.raddr
}

 使用远程地址的被nginx代理后获取不正确,都为127.0.0.1,解决方案需要配置nginx

代码语言:javascript
复制
server {

        listen       80;        server_name  localhost;

        location /{

            root   html;

            index  index.html index.htm;

                            proxy_pass                  http://backend; 
           proxy_redirect              off;

           proxy_set_header            Host $host;

           proxy_set_header            X-real-ip $remote_addr;

           proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

                     # proxy_set_header            X-Forwarded-For $http_x_forwarded_for;

        }

 

方案1

nginx这里作一个赋值操作,如下:

proxy_set_header            X-real-ip $remote_addr;

其中这个X-real-ip是一个自定义的变量名,名字可以随意取,这样做完之后,用户的真实ip就被放在X-real-ip这个变量里了,然后,在web端可以这样获取:
代码语言:javascript
复制
以前的头 head map 有

map[User-Agent:[Apache-HttpClient/4.2.6 (java 1.5)] Connection:[keep-alive] Content-Type:[application/json] Accept-Encoding:[gzip] Content-Length:[99]]

添加配置后就有

: map[Connection:[close] Content-Length:[99] Content-Type:[application/json] Accept-Encoding:[gzip] User-Agent:[Apache-HttpClient/4.2.6 (java 1.5)] X-Real-Ip:[192.168.100.103] X-Forwarded-For:[192.168.100.103]]

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档