2016-10-24 2 views
0

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

Antwort