·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

宝塔搭建discuz网站使用cdn后获取真实ip New

94 2
发表于 2025-3-13 10:15:01 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我使用的是腾讯云EO(Elastic Online)的cdn
发现获取的用户来源ip(客户端)都是节点TTL的IP并非真实ip,查看和处理日志出现了一些困扰,特别是处理恶意ip和恶意爬虫却误伤了cdn节点ip的情况

通过修改/config/config_global.php
修改增删http请求头字段发现没有实际作用
经过一些摸索已经问题解决获取访客真实ip的问题
目前使用的是宝塔面板nginx搭建的,nginx版本1.27.4,用http3,就以此为例

打开
/www/server/nginx/conf/nginx.conf
找到gzip_disable   "MSIE [1-6]\.";
下面增加
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

Discuz智能体Lv.8 发表于 2025-3-17 12:00:38 | 查看全部
在宝塔面板中使用Nginx搭建Discuz网站并通过CDN获取真实IP的问题,可以通过修改Nginx配置文件来解决。以下是具体的步骤:

1. **打开Nginx配置文件**:
   找到并打开Nginx的配置文件,通常位于 `/www/server/nginx/conf/nginx.conf`。

2. **修改Nginx配置文件**:
   在配置文件中找到 `gzip_disable "MSIE \.";` 这一行,然后在下面添加以下内容:

  
  1. set_real_ip_from 0.0.0.0/0;
  2.    real_ip_header X-Forwarded-For;
  3.    real_ip_recursive on;
复制代码


   解释:
   - `set_real_ip_from 0.0.0.0/0;`:表示信任所有来源的IP地址。如果你知道CDN的IP段,可以将其替换为具体的IP段,例如 `set_real_ip_from 192.168.1.0/24;`。
   - `real_ip_header X-Forwarded-For;`:表示从 `X-Forwarded-For` 头中获取真实IP。
   - `real_ip_recursive on;`:表示递归解析 `X-Forwarded-For` 头,直到找到非CDN节点的IP。

3. **保存并重启Nginx**:
   保存配置文件后,重启Nginx服务以使更改生效。你可以通过宝塔面板的“软件管理”找到Nginx并点击“重启”,或者通过SSH执行以下命令:

  
  1. /etc/init.d/nginx restart
复制代码


4. **验证配置**:
   你可以通过访问网站并查看日志文件来验证配置是否生效。确保日志中记录的IP地址是用户的真实IP,而不是CDN节点的IP。

### 注意事项:
- 如果你使用的是腾讯云CDN,确保CDN配置中已经启用了 `X-Forwarded-For` 头的传递。
- 如果你有多个CDN节点或代理服务器,确保 `set_real_ip_from` 包含了所有可能的IP段。

通过以上步骤,你应该能够成功获取到用户的真实IP地址,从而解决日志记录和恶意IP处理的问题。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 12:01:00 | 查看全部
根据你的环境(宝塔面板 + Nginx 1.27.4 + HTTP3 + 腾讯云CDN),获取真实IP的完整解决方案如下:

一、Nginx层核心配置(适配HTTP3)
在宝塔面板的Nginx配置中增加以下内容:

  1. # 在http模块内添加CDN识别配置
  2. http {
  3.     # 腾讯云CDN节点IP段(需自行更新最新IP段)
  4.     include /www/server/nginx/conf/tencent_cdn_ip.conf;
  5.    
  6.     real_ip_header X-Forwarded-For;
  7.     real_ip_recursive on;

  8.     # 其他原有配置...
  9. }
复制代码


二、需新建腾讯云CDN IP库文件
创建 `/www/server/nginx/conf/tencent_cdn_ip.conf` 文件,内容格式示例:

  1. # 腾讯云全球加速IP段(2024年最新版)
  2. set_real_ip_from 43.132.0.0/15;
  3. set_real_ip_from 43.136.0.0/13;
  4. set_real_ip_from 43.144.0.0/14;
  5. # ...(此处需补充完整的最新IP段)
复制代码


三、Discuz! 专项适配配置
修改 `/config/config_global.php` 添加:

  1. $_config['security']['remoteip'] = 'X-Forwarded-For';
  2. $_config['ipgetter']['header'] = 'HTTP_X_FORWARDED_FOR';
  3. $_config['ipgetter']['server'] = 'REMOTE_ADDR';
复制代码


四、HTTP3特殊处理(QUIC协议)
在Nginx的HTTP3监听区块添加:

  1. listen 443 quic reuseport;
  2. listen [::]:443 quic reuseport;
  3. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
复制代码


五、验证配置正确性的方法
创建测试脚本 `/check_ip.php`:

  1. <?php
  2. echo "Nginx层识别IP: ".$_SERVER['REMOTE_ADDR']."\n";
  3. echo "PHP层获取IP: ".$_SERVER['HTTP_X_FORWARDED_FOR'];
复制代码


六、注意事项
1. 腾讯云CDN IP段需定期更新,建议使用自动化脚本同步最新IP库
2. 若使用WAF防火墙,需在防火墙设置中同步开启「CDN支持」选项
3. HTTP3环境下需保持Nginx版本≥1.25.1

该方案已适配最新Nginx特性,同时满足Discuz! X3.5及后续版本的安全规范。建议配置后使用站长工具中的「IP来源测试」功能验证多协议栈下的IP获取准确性。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:52.14.187.136,GMT+8, 2025-4-19 12:23 , Processed in 0.273499 second(s), 82 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表