Ich habe ein Problem mit meiner Serverkonfiguration und kann nicht herausfinden, was ich falsch mache.
Also habe ich einen Nginx-Proxy wie diesen:
server {
listen *:443 ssl;
ssl_certificate /root/software/keys/mywebsite.keys/mywebsite.crt;
ssl_certificate_key /root/software/keys/mywebsite.keys/mywebsite.key;
server_name www.mywebsite.com mywebsite.com;
access_log /var/log/nginx/mywebsite.access.log;
error_log /var/log/nginx/mywebsite.error.log;
root /srv/new-website;
index index.html index.htm index.php;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://127.0.0.1:8082;
}
}
Mein Container lauscht auf Port 8082 in meiner docker-compose.yml-Datei:
version: '2'
services:
websites:
build:
context: ./dockerfiles/
args:
MYSQL_ROOT_PASSWORD: MyPassword
volumes:
- ./logs:/var/log
- ./html:/var/www
- ./mysql-data:/var/lib/mysql
ports:
- "8082:80"
In meinem Container installiere ich nginx mit dieser Konfiguration:
server {
listen *:80;
server_name www.mywebsite.com mywebsite.com;
access_log /var/log/nginx/mywebsite.access.log;
error_log /var/log/nginx/mywebsite.error.log;
root /var/www/mywebsite;
index index.html index.htm index.php;
# WordPress single blog rules.
# Designed to be included in any server {} block.
# Uncomment the code below to use htpasswd authentication
#location ~* (wp-login)\.php$ {
# auth_basic "Administrator Login";
# auth_basic_user_file /full/path/to/.htpasswd;
#}
# This order might seem weird - this is attempted to match last if rules below fail.
# http://wiki.nginx.org/HttpCoreModule
location / {
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Directives to send expires headers and turn off 404 error logging.
location ~* ^.+\. (ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires max;
}
# Uncomment one of the lines below for the appropriate caching plugin (if used).
#include global/wordpress-wp-super-cache.conf;
#include global/wordpress-w3-total-cache.conf;
location ~ [^/]\.php(/|$) {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fcgi.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Ich habe auch meine WordPress-Site innerhalb der wp-config.php konfiguriert
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_CONTENT', true);
Und die URL in der Datenbank mit der richtigen URL geändert https://www.meinewebsite.com
Mein Problem ist, ich habe das Problem ERR_TOO_MANY_REDIRECTS. Der Proxy scheint gut zu funktionieren, da ich einige Nginx-Protokolle im Container habe:
[20/Mar/2017:10:50:17 +0100] "GET /wp-login.php HTTP/1.1" 302 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
Vielen Dank an alle für die Hilfe, die Sie leisten können.
BEARBEITEN 1:
Also setze ich mein Problem fort und finde wahrscheinlich einige Antworten. Das Problem scheint bei WordPress und nicht bei der Proxy-Konfiguration zu liegen.
Wenn ich hinzufüge:
define('WP_CACHE', true); // Added by W3 Total Cache
echo 'test';exit();
In der wp-config.php ist meine Website mit meinem richtigen Zertifikat geladen und alles funktioniert gut. Mein Problem scheint also auf WordPress zu liegen, das sich auf https wiederholt, aber ich kann nicht herausfinden, warum. Ich werde versuchen, Schritt für Schritt zu debuggen.