前言:在使用egg.js的时候,一般会开node服务,然后使用nginx代理我们egg.js的接口,因此产生了egg.js获取的ip地址并不是客户端真实ip,而是拿到的是nginx 的地址。故需要两点:
1.配置egg.js
2.配置nginx
1.配置egg.js
路径 config/config.default.js
# 注意,开启此模式后,应用就默认自己处于反向代理之后,
# 会支持通过解析约定的请求头来获取用户真实的 IP,协议和域名。
# 如果你的服务未部署在反向代理之后,请不要开启此配置,以防被恶意用户伪造请求 IP 等信息。 config.proxy = true;
2. 配置nginx
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:81;
}
在代理前加上如上三条即可。详解请参考,鸣谢!!!
3. 获取ip
获取ip就就简单了
this.ctx.request.ip
获取ip并完成存储ip请,传送门
留言