egg获取客户端请求的ip地址

文摘   2024-08-11 22:35   福建  

vue2-element-dict、vue3-element-dict、vue2-vant-dict、vue3-vant3-dict字典包,vue2-water-marker、vue3-water-marker防篡改的水印插件包,vue-axios-optimize请求优化包,大家有兴趣的可在npm官网搜索了解下,有疑问可咨询小布。

http://www.xiaobusoft.com  爆米花小布官方域名,有兴趣的可查阅。

前言

大家好,我是沈小布,勤能补拙,实践是检验真理的唯一标准是我的座右铭,帮助同行人员少走弯路,提高开发效率,提升代码质量是我的初心。

主题

今天的主题是使用Egg获取客户端请求的IP地址,并解决上线后获取的IP地址一直为127.0.0.1的问题。

egg项目配置及获取

在config/config.default.js中配置

// 注意,开启此模式后,应用就默认自己处于反向代理之后,// 会支持通过解析约定的请求头来获取用户真实的 IP,协议和域名。// 如果你的服务未部署在反向代理之后,请不要开启此配置,以防被恶意用户伪造请求 IP 等信息。config.proxy = true;

获取IP地址

 //登录日志  async loginLog(){    const { ctx, app } = this;    const new_ip = ctx.request.ip;            // 获取ip    console.log(new_ip,'-----ip--------')  }

nginx配置

配置反向代理,解决跨域问题

    #访问 API  请求服务器的代理api 服务在本地启动    location /api/ {      proxy_pass http://127.0.0.1:7001/;    }

此时查看登录日志,登录的IP地址都是127.0.0.1。改为如下配置,即可解决问题。

     #访问 API  请求服务器的代理api 服务在本地启动    location /api/ {        # 获取ip地址 前3个开启        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:7001/;    }
此时获取到的IP地址就正常啦。

总结

这就是使用Egg获取客户端请求的IP地址,并解决上线后获取的IP地址一直为127.0.0.1的问题希望对您有所帮助,感谢支持。

写在最后

希望我的文章能够或多或少帮助到大家,如果有点帮助,可分享给更多人,予人玫瑰,手有余香。最后可以的话三连击是对小编写文最大的动力。

公众号爆米花小布 专注分享 web 前端相关技术文章工具包、软件工具等,如果喜欢我的分享,给 小布 点一个 👍 或者 ➕关注 都是对我最大的支持。

爆米花小布
总结前端开发经验,分享前端开发技术,提升前端开发效率,让开发变得更简单,更快乐。 生活不止于工作,同时也会分享其他相关文章,陶冶情操,扩展知识面。
 最新文章