Ich benutze Nginx Proxy-Verkehr zu Docker-Containern, aber ich habe Probleme mit einem Container mit WordPress über Apache.Nginx-Proxy, WP auf Apache. Redirect 302 auf wp-login.pphp
Blog funktioniert gut, ich sehe Posts, Bilder ... Aber ich kann nicht auf die Admin-Seite zugreifen, da die Umleitung zu wp-login.php 302 zurückgibt und nie getan wird, also nach einigen Versuchen der Browser löst ein Fehler bei zu vielen Weiterleitungen.
Proxy config:
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;
# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location /newWeb {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_cookie_path/"/; secure; HttpOnly";
}
location /blog {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_cookie_path/"/; secure; HttpOnly";
}
}
server {
listen 80;
location /.well-known {
alias /usr/local/etc/letsencrypt-webroot/.well-known;
}
return 301 https://$host$request_uri;
}
Beachten Sie, dass ich nicht für die try_files
Richtlinie suchen, um die Schleife zu verhindern, ich versuche, die Lösung zu finden, um erfolgreich zu wp-login.php zu umleiten.
UPDATE:
Das vom Docker Host ist. 8080 ist der Port, ich bin Weiterleitung von Apache 80.
wget http://127.0.0.1:8080/blog/wp-login.php
--2016-10-25 11:35:34-- http://127.0.0.1:8080/blog/wp-login.php
Connecting to 127.0.0.1:8080... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://127.0.0.1:8080/blog/wp-login.php [following]
--2016-10-25 11:35:35-- https://127.0.0.1:8080/blog/wp-login.php
Connecting to 127.0.0.1:8080... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.
Ich verstehe, der Fehler ist, weil Apache nicht auf HTTPS hören, nur HTTP. Was mich zu zwei Fragen führt:
- Wie zum Teufel kann ich SSL Entlastung mit Nginx und Apache haben? Theoretisch muss Apache keine HTTPS erwarten.
In dem
wget
Beispiel, warum wird es zu HTTPS umgeleitet? Es wird nicht durch nginx, sondern direkt an den Container Apache und Virtualhost ist nur die einfache:<VirtualHost *:80> DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Es gibt keine
.htaccess
entweder