推荐应用

Discuz多国语言翻译

Discuz多国语言翻译

文库系统/文档系统

文库系统/文档系统

美食菜谱发布菜谱

美食菜谱发布菜谱

漫画阅读中心

漫画阅读中心

小说阅读中心

小说阅读中心

语言包切换基本文件

语言包切换基本文件

成语闯关

成语闯关

谷歌登錄Google登錄

谷歌登錄Google登錄

轻APP

轻APP

网上祭祀祭拜扫墓

网上祭祀祭拜扫墓

手机MP4视频上传

手机MP4视频上传

彩票开奖号码公布

彩票开奖号码公布

DZX泰语/傣语

DZX泰语/傣语

DZX日文版(日本语)

DZX日文版(日本语)

Discuz! X3.5 针对常见CDN/WAF/负载均衡 获取真实IP的方法

发布于 2023-01-03

参照此教程修改之前,请务必确认X3.5当前是否能够获取到真实的IP地址
如果已经能获取到真实IP地址的情况下,切勿参照此教程修改!

首先打开 config/config_global.php 这个文件,到大约最下面的位置,找到这样一段:

$_config['ipgetter']['setting'] = '';

改成

$_config['ipgetter']['setting'] = 'header';

对于许多CDN来说,做到这一步就已经能获取到真实IP了,可以试一下。

在做完上一步的前提之下,如果你的CDN属于以下范围,可以进一步参考以下内容尝试进行修改,并观察获取到的IP
按下述方法进一步修改后往往能得到正确或者更准确的结果
(以下信息均来自于各大厂商官方文档,是否可用需要看厂商文档的准确程度,建议修改后自行测试)

需要修改的是这一行:

$_config['ipgetter']['header']['header'] = 'HTTP_X_FORWARDED_FOR';

Cloudflare:
改成

$_config['ipgetter']['header']['header'] = 'HTTP_CF_CONNECTING_IP';

阿里云:
(这个视情况修改,不一定可用)
https://help.aliyun.com/document_detail/155768.html
参考此文章最下面的配置示例二
配置场景:在回源头里面添加客户端真实IP信息,给源站传递客户端IP地址信息。
配置方法:

   自定义请求头名称:X-Real-IP。
   请求头参数:$remote_addr。

配置后,将上述行改成

$_config['ipgetter']['header']['header'] = 'HTTP_X_REAL_IP';

又拍云:
改成

$_config['ipgetter']['header']['header'] = 'HTTP_X_REAL_IP';

Fastly:
改成

$_config['ipgetter']['header']['header'] = 'HTTP_FASTLY_CLIENT_IP';

Azure:
改成

$_config['ipgetter']['header']['header'] = 'HTTP_X_AZURE_CLIENTIP';

由于CDN厂商众多,无法一一列出,且这部分功能还需要进一步的完善

扫一扫添加有偿QQ
扫一扫添加微信客服