Discuz! X3.5 针对常见CDN/WAF/负载均衡,如何获取真实IP?,https 负载均衡

Discuz! X3.5 针对常见CDN/WAF/负载均衡,如何获取真实IP?观前提示:修改Discuz不是获取真实IP的最佳方法 如果您有能力,建议了解Apache mod_remoteip、Nginx ngx

浏览前提示:Discuz修改并不是获取真实IP的最佳方式

如果有能力,我建议学习Apache mod_remoteip,Nginx ngx_http_realip_module,或者其他类似的功能。

在服务器端设置可以让服务器访问日志收集到正确的IP。

在按照本教程进行任何更改之前,请务必检查X3.5 当前是否能够获取真实的IP 地址。

如果您已有真实IP 地址,请勿按照本教程进行更改。

首先,打开文件config/config_global.php 并找到以下行:

$_config[\’安全\’][\’onlyremoteaddr\’]=1;

复制代码

将1 改为0

然后到底部找到下一段。

//————————-配置IPGETTER———- – —- //$_config[ \’ipgetter\’][\’设置\’]=\’\’;$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_X_FORWARDED_FOR\’;

复制代码

位于他们之间

$_config[\’ipgetter\’][\’设置\’]=\’\’;

复制代码

更改为

$_config[\’ipgetter\’][\’设置\’]=\’标题\’;

复制代码

(如果已经是标题则无需更改)

对于许多CDN,您已经可以通过执行此步骤获取真实IP。

完成上述步骤后,如果您的CDN 属于以下范围,您可以进一步查看以下内容来尝试更改并验证您获得的IP。

在许多情况下,根据以下方法进一步修改将产生正确或更准确的结果。

(以下信息摘自各大厂商官方文档,可用性取决于厂商文档的准确性,建议修改后自行测试)

您需要更改的行是:

$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_X_FORWARDED_FOR\’;

复制代码

云耀:

更改为

$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_CF_CONNECTING_IP\’;

复制代码

阿里云:方案一:改为

$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_ALI_CDN_REAL_IP\’;

复制代码

场景2:

(此内容可能会更改并且可能不可用)https://help.aliyun.com/document_detail/155768.html

请参阅本文底部的第二个配置示例。

配置场景:在返回源中添加客户端的实际IP信息,并将客户端的IP地址信息转发至源站。

设置方法:

自定义请求标头名称:X-Real-IP。

请求头参数:$remote_addr。

设置完成后,将上面一行修改为:

$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_X_REAL_IP\’;

复制代码

腾讯云:https://cloud.tencent.com/document/product/228/45078

如需更改腾讯云配置,请参考本文。

标头参数设置如下: X-Client-IP

标头值设置为$client_ip。

设置完成后,将上面一行修改为:

$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_X_CLIENT_IP\’;

复制代码

华为云:

官方文档:https://support.huaweicloud.com/bestpractice-cdn/cdn_01_0153.html

用户Fugui6868分享的经验:

要获取华为云CDN的实际IP,请配置并解释单独的域名设置。

还拍云:

更改为

$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_X_REAL_IP\’;

复制代码

快:

更改为

$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_FASTLY_CLIENT_IP\’;

复制代码

天蓝色:

更改为

$_config[\’ipgetter\’][\’header\’][\’header\’]=\’HTTP_X_AZURE_CLIENTIP\’;

复制代码

CDN厂商众多,无法一一列举,而且这方面的功能还需要完善。

如果您在使用本教程后仍然无法获取真实IP,您可以回复并提问。

当Discuz部分配置完毕并可以顺利使用后,如果您的站点没有使用独立模式,您还需要对UCenter Server进行相应的配置。

进入uc_server/data/config.inc.php 文件,找到以下段落:(如果使用自定义路径uc,则必须将uc_server 替换为您实际的uc 位置)

(早期的X3.5版本可能没有这个,如果没有,可以自己在文件末尾添加)

定义(\’UC_ONLYREMOTEADDR\’,1);定义(\’UC_IPGETTER\’,\’标题\’);定义(\’UC_IPGETTER_HEADER\’,序列化(数组(\’标题\’=\’HTTP_X_FORWARDED_FOR\’)));

复制代码

只需将UC_ONLYREMOTEADDR 行中的1 更改为0 即可。

UC_IPGETTER_HEADER 行中的HTTP_X_FORWARDED_FOR 也可以按照上面的Discuz 更改方法更改为您想要的值(不用担心上面的值没有更改)。

这就是#X3.5 的全部内容。一般CDN/WAF/负载均衡如何获取真实IP? 相关内容源网络仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92176.html

(0)
CSDN的头像CSDN
上一篇 2024年6月25日
下一篇 2024年6月25日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注