通过Varnish/Apache在Wordpress上使用Nginx SSL终止重定向循环

Fey*_*ubi 3 apache wordpress nginx varnish ubuntu-14.04

我有一个设置,其中Apache在端口80上的Varnish 4后面监听端口8080,但是我的客户端需要ssl在网站上工作,因此我使用本指南在端口443上设置Nginx用于SSL终止.

一切都在http上工作正常,但是在尝试在https上加载网站时,网站所需的脚本将无法加载,所以我决定将网站网址更改为Settings > Generalhttps网址,保存更改后,我获得了重定向Chrome中的循环错误.

我无法访问该网站的wordpress仪表板来更改网址,所以我必须通过phpmyadmin这样做.但是现在当通过https访问该站点时,站点中断导致呈现内容所需的脚本未经过身份验证.

其他人在这里有同样的问题,但看起来并没有解决.

如何https在Chrome中没有重定向循环的情况下启用该网站?

Fey*_*ubi 10

经过几个小时的试图让这个工作起来,我终于找到了一个修复,HTTP_X_FORWARDED_PROTOwp-config.php只需要在更改网站网址之前添加一个,这样:

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
     $_SERVER['HTTPS']='on';
Run Code Online (Sandbox Code Playgroud)

我要做的另一件事是添加proxy_set_header X-Forwarded-Protocol $scheme;到我的default文件中,/etc/nginx/sites-enabled/default所以它看起来像这样:

server {                                                      
        ...                                                    
        location / {                                          
                 ...
            proxy_set_header X-Forwarded-Protocol $scheme;
          }
  }
Run Code Online (Sandbox Code Playgroud)

希望这有助于那里的人.

  • 这对我帮助很大......谢谢! (2认同)