【发布时间】:2015-06-19 02:14:19
【问题描述】:
在 Ubuntu12.04.5 [Visitor>Nginx>SSL Termination>Varnish3.0>Apache] 上成功配置设置后,我安装了 WHMCS 并遇到错误,“页面未正确重定向”。
在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 正在通过 varnish 选择来自端口 80 的代理 127.0.0.1。
有人可以建议如何配置服务器,以便 Apache/WHMCS 传递和理解真实 IP 吗?
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;
}
}
另外,我在 WMCS 中检查了 PHP 信息,发现以下内容:
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
也许这有助于调查此事..
--
SV
【问题讨论】:
标签: php apache nginx proxy varnish