云服务器

首页 > WHMCS > WHMCS网站使用CDN后不显示用户访问的真实IP

WHMCS网站使用CDN后不显示用户访问的真实IP

WHMCS使用CDN后会显示CDN节点服务器IP,不显示用户的真实IP,如使用百度的CDN会显示百度CDN节点IP,如下图中用户访问IP显示:58.216.2.205,在百度会员内容分发网络CDN中的:工具>>IP检测 中还是显示为百度云节点IP。

百度搜索解决方法,很多人提供的方法是在configuration.php最后加上以下代码,但仍不能解决问题。

$_SERVER[‘REMOTE_ADDR’] = $_SERVER[‘HTTP_X_FORWARDED_FOR’]; // 获取真实IP

list($_SERVER[‘REMOTE_ADDR’]) = explode(‘, ‘, $_SERVER[‘REMOTE_ADDR’], 2); // 可能通过多个代理,其中第一个为真实ip地址

$_SERVER[‘HTTP_X_FORWARDED_FOR’] = $_SERVER[‘REMOTE_ADDR’]; // 添加到WHMCS IP变量

这是因为您需要配置您的服务器以获取真实 IP。 例如,使用 Apache的 mod_remoteip:https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html

在服务器上开启 mod_remoteip方法:

第一种方法:在服务器配置文件httpd.conf中,查找

LoadModule remoteip_module modules/mod_remoteip.so

把前面的#符号去掉

然后在 httpd.conf 配置文件末尾添加以下代码,并重启apache。

<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPProxiesHeader X-Forwarded-By
</IfModule>

第二种方法:如你使用的是宝塔香港/美国服务器设置就比较直观简单

进入宝塔面板软件商店找到apache在设置里的:配置修改

找到: LoadModule remoteip_module modules/mod_remoteip.so 把前面的#符号去掉

然后在最后加上下面的代码,和上面的代码一样,保存后重启apache。

<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPProxiesHeader X-Forwarded-By
</IfModule>

第三种方法:在宝塔面板的软件商店中找到:Apache防火墙安装,这个是收费的,安装后在设置里开启使用CDN

图片描述

发表回复