I'm trying to run wordpress on a docker based cloud. The setup is:
There is a server running a mysql array, which serves a container with WordPress Running on Nginx. The setup is copied from this dockerfile. The goal of this setup is to achieve a high throughput and be compatible with our cloud setup.
The wordpress container has a local ip, in the same subnet as the mysql array and Nginx reverse proxy, and a public port to run http (not https).
The reverse proxy is configured to run SSL for the wordpress container. Navigation works on both http and https, but when I try to log in the dashboard with HTTPS, I get this error:
You do not have sufficient permissions to access this page.
The only meaningful error I found happens when I log in on the dashboard, on HTTP:
[04-Nov-2014 23:16:13 UTC] PHP Notice: Undefined index: HTTP_X_FORWARDED_PROTO in /usr/share/nginx/www/wp-config.php on line 86
but the dashboard works correctly on http.
In WordPress configuration file I had to add the line:
/* SSL Proxy */
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on';
And I think this is the culprit. I found this tip in the official wordpress documentation, and without it HTTPS doesnt load the CSS, either logged or not logged. I think maybe I should modify this line to suit my configuration?
Either this, or the nginx reverse proxy configuration file, I have no idea.
The nginx configuration file in the wordpress + nginx container is quite standard, and it's copied from here.
Please help me 😀
Best Answer
I had some problem, I resolved in this way:
in my wp-config.php,
I added these lines:
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
BEFORE everything in the code.
Hope it helps!