宝塔1024及双11特惠活动,企业版1099元/年,送SSL证书,最高立减2万元!查看活动
当前位置:论坛首页 > Linux面板 > 讨论

【待反馈】nginx反代,后端无法获取到真实ip

发表在 Linux面板2023-4-13 16:37 [复制链接] 5 2710

环境:
前端,nginx
后端,nginx+php

前端通过宝塔安装了nginx并且设置了反代,配置文件默认,如自带了
  1.     proxy_set_header X-Real-IP $remote_addr;
  2.     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  3.     proxy_set_header REMOTE-HOST $remote_addr;
复制代码
后端宝塔安装nginx+php默认配置
网站日志,无法获取到真实的访问ip,只能记录到前端nginx服务器ip
通过对后端服务器进行配置:
  1. location /
  2. {
  3. set_real_ip_from 前端ip1;
  4. set_real_ip_from 前端ip2;
  5. real_ip_header X-Forwarded-For;
  6. real_ip_recursive on;
  7. }
复制代码
后,网站日志能够记录.html等静态访问的用户真实ip,访问为.php的依然记录前端服务器ip,网站均在前端开启了SSL,即https访问。
不知道如何解决这个问题?
使用道具 举报 只看该作者 回复
发表于 2023-4-13 17:18:35 | 显示全部楼层
您好,您那边调整配置Nginx配置文件后需要重启Nginx服务,其次您那边将前端IP写为0.0.0.0/0的方法看下是否能正常获取。
如后端还是无法获取到真实IP,可在后端服务器的应用程序正确地读取这些HTTP头字段,如是PHP程序,可尝试在程序代码内增加下方参数去获取:
  1. $real_ip = $_SERVER['HTTP_X_REAL_IP'];
复制代码
使用道具 举报 回复 支持 反对
发表于 2023-4-13 17:36:53 | 显示全部楼层
谢花郎 发表于 2023-4-13 17:18
您好,您那边调整配置Nginx配置文件后需要重启Nginx服务,其次您那边将前端IP写为0.0.0.0/0的方法看下是否 ...

$real_ip = $_SERVER['HTTP_X_REAL_IP'];  可以获取到真实的ip地址
但是在后端nginx的网站访问日志里面依然是前端ip记录了这一条访问记录,并且我把前端ip也/32设置了。。。
使用道具 举报 回复 支持 反对
发表于 2023-4-13 17:41:27 | 显示全部楼层
谢花郎 发表于 2023-4-13 17:18
您好,您那边调整配置Nginx配置文件后需要重启Nginx服务,其次您那边将前端IP写为0.0.0.0/0的方法看下是否 ...

前端IP写为0.0.0.0/0 也是一样
使用道具 举报 回复 支持 反对
发表于 2023-4-17 09:40:38 | 显示全部楼层
自己顶,哎。。。
使用道具 举报 回复
发表于 2023-10-25 09:45:49 | 显示全部楼层
whhack 发表于 2023-4-17 09:40
自己顶,哎。。。

您好,使用企业版IP精准数据包也不行吗? ip精准数据包.png
另外Nginx的配置获取客户端IP基本都是一样的,看下是不是传递IP的参数是否正确?
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表