客户端真实IP获取
Nuxt
工程的 服务端渲染
,将使用 Node
向 PHP
接口请求预渲染数据,此时 PHP
获取到的 客户端IP
总是 Node
服务器的,并非真实IP,但从 BuildAdmin v2.1.3
起通过简单配置即可正确获取,如下:
- 上层反向代理服务器需要配置好真实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反向代理相关配置结束 >>>
}
- 联系
PHP
后端开发者:找到config/buildadmin.php
文件中的proxy_server_ip
配置项,填写部署 Nuxt 工程的服务器的 IP
,这表示信任该服务器传递的X-Real-IP
字段;Nuxt
工程将自动接受Nginx
传递的X-Real-IP
并继续传递给PHP
服务器。 - 刷新
Nuxt
工程会员中心的账户概览
页面,刷新后显示的最后登录IP
为当前客户端IP,即配置成功。