后端获取nuxt项目的用户ip地址

原文个人博客:后端获取nuxt项目的用户ip地址 后端

nuxt 使用pm2 部署好了以后,因为我申请的域名还没审核经过,因而先用ip:port方式访问爽一波,其余一切正常,可是很快我发现我获取的全部ip都是127.0.0.1,瞬间不开心了,因而开始研究bug之路。服务器

首先先理清nuxt的工做机制:

ssr渲染: 用户(pc、手机等设备)访问nuxt服务器,nuxt服务器接收到请求,nuxt服务器向接口服务发起请求,接口返回数据给nuxt,nuxt渲染好数据返回给用户。markdown

非ssr渲染:用户(pc、手机等设备)在nuxt客户端上直接向接口服务器发起请求,接口服务器返回数据给nuxt客户端,nuxt客户端渲染数据显示给用户。async

接下来就是解决问题

nuxt 工做机制清楚了就好办了:oop

非ssr渲染,就是正常的应用访问获取ip问题,咱们直接配置一个Nginx代理,而后转发ip,后端就能够愉快的获取ip了。spa

ssr渲染没有获取到ip是很正常的,由于nuxt服务端向接口服务请求,是发生在咱们服务器本地的,因此要解决ssr渲染时没有获取正确ip的方法,就是在nuxt 使用ssr渲染发起请求时,把用户的ip放在咱们的header中。ssr

nuxt 的 asyncData 里面是能够获取客户端的上下文的,里面有不少参数:nuxt

asyncData({context}){
  const headers = (context && context.headers) ? Object.assign({}, context.headers)  : {}
}
复制代码

咱们取出用户端的header,放到咱们发起请求的header中,这样后端就能够正确获取了,固然你也能够直取某些参数,本身传进去。代理

相关文章
相关标签/搜索