今天,我们遇到了一个问题,即Magento管理员中的在线客户选项显示的是Web服务器的IP地址,而不是客户的/远程IP地址。经过进一步调查,我们发现这是由于Web服务器位于清漆服务器后面导致此问题。即使您的Web服务器位于代理服务器之后,也会发生相同的问题。
实际上,我们可能会忽略上述问题,因为它并没有阻止商店中的任何事情,但是随后我们发现了另一个问题,World pay phoenix模块最终出现在故障页面上,在进一步调查之后,我们在/ app / code中找到了以下行/community/Phoenix/Worldpay/controllers/ProcessingController.php-:
$remoteAddr = $request['REMOTE_ADDR'];
if (substr($remoteAddr,0,11) != '155.136.16.') {
.......
}
它正在比较WorldPay的IP地址,以确保它直接来自WorldPay,并且没有受到任何人的限制。由于清漆服务器就位,因此您确定知道此检查失败,并且日志文件显示以下错误-:
Worldpay response error: IP can't be validated as WorldPay-IP.
无论如何,现在我们必须找到解决此问题的解决方案,并且在更详细地研究之后,我们发现Magento有解决方案,而我们要做的就是在local.xml中添加以下代码,如下所示:
<config>
<global>
.....
.....
<remote_addr_headers>
<header1>HTTP_X_REAL_IP</header1>
<header2>HTTP_X_FORWARDED_FOR</header2>
<header3>REMOTE_ADDR</header3>
</remote_addr_headers>
</global>
然后,我们清除了缓存,所有这些都像个魅力一样发挥了作用!希望本文对您有所帮助。请留下您的评论,让我们知道您的想法?谢谢。