nginx 反向代理背后的 Wordpress 在 https 中不起作用

Mas*_*one 3 ssl nginx reverse-proxy wordpress docker

我正在尝试在基于 docker 的云上运行 wordpress。设置是:

WordPress 云设置

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

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

反向代理配置为为 wordpress 容器运行 SSL。导航适用于 http 和 https,但是当我尝试使用 HTTPS 登录仪表板时,出现此错误:

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

我发现的唯一有意义的错误发生在我通过 HTTP 登录仪表板时:

[04-Nov-2014 23:16:13 UTC] PHP 通知:未定义索引:HTTP_X_FORWARDED_PROTO in /usr/share/nginx/www/wp-config.php on line 86

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

在 Wordpress 配置文件中,我必须添加以下行:

/* SSL代理*/

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

我认为这是罪魁祸首。我在wordpress 官方文档中找到了这个技巧,没有它 HTTPS 不会加载 CSS,无论是记录还是未记录。我想也许我应该修改这条线以适应我的配置?

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

wordpress + nginx容器中的nginx配置文件比较标准,从这里复制过来的

请帮帮我:D

小智 5

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

在我的 wp-config.php 中,

我添加了这些行:

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

在代码中的所有内容之前。

希望能帮助到你!