沃梦达 / 编程技术 / CMS教程 / 正文

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

我有一个设置,其中Apache在端口80上的Varnish 4后面监听端口8080,但是我的客户端需要ssl在网站上工作,所以我使用this guide在端口443上设置Nginx用于SSL终止.一切都在http上工作正常,但在尝试在https上加载网站时,网...

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

一切都在http上工作正常,但在尝试在https上加载网站时,网站所需的脚本将无法加载,因此我决定更改设置中的网站网址>一般到https网址,保存更改后,我在Chrome中遇到重定向循环错误.

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

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

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

解决方法:

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

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
     $_SERVER['HTTPS']='on';

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

server {                                                      
        ...                                                    
        location / {                                          
                 ...
            proxy_set_header X-Forwarded-Protocol $scheme;
          }
  }

希望这有助于那里的人.

本文标题为:通过Varnish / Apache在WordPress上使用Nginx SSL终止重定向循环

基础教程推荐