客户端真实IP获取

Nuxt 工程的 服务端渲染,将使用 NodePHP 接口请求预渲染数据,此时 PHP 获取到的 客户端IP 总是 Node 服务器的,并非真实IP,但从 BuildAdmin v2.1.3 起通过简单配置即可正确获取,如下:

  1. 上层反向代理服务器需要配置好真实IP的转发,比如下方 Nginx 配置中的 proxy_set_header X-Real-IP $remote_addr;
server
{
    listen 80;
    # 域名等配置略

    # HTTP反向代理相关配置开始 <<<
    location / {
        # 端口为3000,自定义后请注意修改
        proxy_pass http://127.0.0.1:3000;
        # 添加发往 Node 服务器的请求头,$remote_addr 即为客户端 IP
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
    }
    # HTTP反向代理相关配置结束 >>>
}
  1. 联系 PHP 后端开发者:找到 config/buildadmin.php 文件中的 proxy_server_ip 配置项,填写 部署 Nuxt 工程的服务器的 IP,这表示信任该服务器传递的 X-Real-IP 字段;Nuxt 工程将自动接受 Nginx 传递的 X-Real-IP 并继续传递给 PHP 服务器。
  2. 刷新 Nuxt 工程会员中心的 账户概览 页面,刷新后显示的 最后登录IP 为当前客户端IP,即配置成功。