在nginx反向代理背后的WordPress不工作在https

我试图在基于Docker的云上运行wordpress。 设置是:

WordPress的云安装

有一台运行mysql数组的服务器,它使用运行在Nginx上的Wordpress提供容器。 该设置是从这个dockerfile复制的。 此设置的目标是实现高吞吐量并与我们的云安装兼容。

wordpress容器有一个本地ip,与mysql数组和Nginx反向代理位于同一个子网,并有一个运行http(不是https)的公共端口。

反向代理被configuration为为wordpress容器运行SSL。 导航对http和https都起作用,但是当我尝试使用HTTPSlogin仪表板时,出现以下错误:

您没有足够的权限访问此页面。

我在HTTP上的仪表板上login时发现了唯一有意义的错误:

[04-Nov-2014 23:16:13 UTC] PHP注意:未定义索引:/usr/share/nginx/www/wp-config.php中的HTTP_X_FORWARDED_PROTO行86

但仪表板在http上正常工作。

在Wordpressconfiguration文件中,我不得不添加下面这行:

/ * SSL代理* /

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

我认为这是罪魁祸首。 我在官方的wordpress文档中发现了这个技巧,如果没有它,HTTPS不会加载CSS,无论是logging还是不logging。 我想也许我应该修改这一行以适应我的configuration?

无论是这个,还是nginx反向代理configuration文件 ,我都不知道。

wordpress + nginx容器中的nginxconfiguration文件是相当标准的,而且是从这里复制的。

请帮助我:D

我遇到了一些问题,我这样解决了:

在我的wp-config.php中,

我添加了这些行:

if(strpos($ _ SERVER ['HTTP_X_FORWARDED_PROTO'],'https')!== false)$ _SERVER ['HTTPS'] ='on';

代码中的所有内容。

希望能帮助到你!

只需将redirect代码放在.htaccess中。 一切都会正常工作