在Ubuntu12.04.5 [访客> Nginx> SSL终止> Varnish3.0> Apache]上成功配置设置后,我安装了WHMCS并遇到错误,"页面未正确重定向&#34 ;
在searching online之后我遵循了这些步骤..
所以我在我关注的服务器块中添加了以下行:
proxy_set_header X-Forwarded-Protocol $scheme;
然后我在.htaccess文件中添加了以下行:
if ($_SERVER['HTTPS'] !== on) {
SetEnvIf X-Forwarded-Protocol https HTTPS=on
一切顺利,停止了重定向,我可以通过https访问我的管理面板。
现在,在登录WHMCS管理面板时,我发现WHMCS中的IP跟踪显示登录页面上的访客IP为127.0.0.1。即使我已将以下行添加到我的nginx服务器块:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
然而,似乎IP没有被传递,WHMCS正在从端口80通过清漆选择代理127.0.0.1。
有人可以建议如何配置服务器,以便传递真正的IP&由Apache / WHMCS理解?
PS:我已经尝试但未能实施Real IP Module
我的nginx服务器块如下所示:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
}
}
另外,我将PHP Info检入我的WMCS并找到以下内容:
Apache环境
HTTP_X_REAL_IP - 显示我的CloudFlare DNS IP
HTTP_CF_CONNECTING_IP - 显示我的真实IP
HTTP_X_FORWARDED_FOR - 显示三个IP,即我的真实IP,我的CloudFlare DNS IP,127.0.0.1
也许这可以帮助调查此事..
-
答案 0 :(得分:0)
搜索左和后是的,最终得到WHMCS Support&的答案。 CloudFlare Module
虽然我的CloudFlare模块仍无法正常工作,但我暂时能够通过在WHMCS安全设置中将所有CloudFlare IP添加到受信任代理列表来解决Real IP问题。
仍然不知道为什么mod_cloudflare无法为Apache服务器提供正确的IP :(
答案 1 :(得分:0)
将此代码添加到configuration.php:
Doctrine\Common
或尝试:
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
$ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip_address = $_SERVER['REMOTE_ADDR'];
}
答案 2 :(得分:0)
我正在寻找一种解决方案,同时使用WHMCS和cloudflare保护..我已经尝试了很多解决方案..从未工作..
我真的要感谢Saurabh Vashist分享这个解决方案。在对WHMCS配置文件进行少量编辑之后:
if(isset($_SERVER['HTTP_CF_CONNECTING_IP']) &&
$_SERVER['HTTP_CF_CONNECTING_IP'] != '') {
$_SERVER["REMOTE_ADDR"] = $_SERVER['HTTP_CF_CONNECTING_IP'];
} else {
$_SERVER["REMOTE_ADDR"] = $_SERVER['REMOTE_ADDR'];
}
真正的访客IP现在又出现了..
非常感谢你们分享......