一个带有nginx代理的web项目,如何在php服务端获取真实的客户ip
时间: 2024-03-17 19:42:27 浏览: 135
基于Nginx 反向代理获取真实IP的问题详解
在带有nginx代理的web项目中,客户端的真实IP会被代理服务器的IP所代替,因此在php服务端获取真实的客户IP需要进行一些配置。
可以通过在nginx配置文件中添加以下内容来实现:
```
location / {
proxy_pass http://your_server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
```
其中,`proxy_set_header X-Real-IP $remote_addr;`将客户端的真实IP地址传递给代理服务器,`proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;`将代理服务器的IP地址添加到请求头中。
然后,在php服务端中可以通过`$_SERVER['HTTP_X_REAL_IP']`获取客户端的真实IP地址。如果有多级代理,则可以通过解析`$_SERVER['HTTP_X_FORWARDED_FOR']`来获取所有代理服务器的IP地址。
阅读全文