Probleme mit gemischten Inhalten mit den try_files-Direktiven vermeiden, wenn Nginx als SSL-Proxy verwendet wird?

Probleme mit gemischten Inhalten mit den try_files-Direktiven vermeiden, wenn Nginx als SSL-Proxy verwendet wird?

Ich verwende Nginx als SSL-Proxy in einem Docker-Container, der auf Port 443 lauscht. Der Proxy funktioniert einwandfrei und leitet den Datenverkehr ordnungsgemäß an eine andere Nginx-Instanz weiter, die sich weiter oben auf Port 80 befindet (und sich in einem anderen Container befindet).

Ich habe Probleme mit gemischten Inhalten und bin nicht sicher, was die richtige Lösung wäre:

Eine auf einen Ordner gerichtete Anfrage (aber ohne abschließenden Schrägstrich) wie: https://example.com/mediafiles/barwird ordnungsgemäß an die zweite NginX-Instanz weitergeleitet.

Es wird jedoch eine 301-Weiterleitung zu einer HTTP-URL (Antwortheader) angezeigt:

$ curl -IL https://example.com/mediafiles/bar

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Mon, 15 Jun 2015 15:16:29 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: http://example.com/mediafiles/bar/
X-UA-Compatible: IE=Edge,chrome=1

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Mon, 15 Jun 2015 15:16:29 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://example.com/mediafiles/bar/

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 15 Jun 2015 15:16:29 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 1786
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Wed, 18 Mar 2015 23:09:35 GMT
Vary: Accept-Encoding
ETag: "550a05af-6fa"
Accept-Ranges: bytes
X-UA-Compatible: IE=Edge,chrome=1

Wird wahrscheinlich durch diese allgemeine Try_files-Konfiguration verursacht (BEARBEITEN: Offenbar werden keine Weiterleitungen ausgegeben).

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ /index.php?$args;
}

Ich habe die vollständige Upstream-Konfiguration hier gepostet:https://gist.github.com/mgcrea/f149d0481ad1fa1c2207

Und die relevante Proxy-Konfiguration hier:https://gist.github.com/mgcrea/26ef92026a20ccc22226

Diese 301-Weiterleitung zu einer HTTP-Ressource löst einen Fehler mit gemischten Inhalten aus:

Gemischter Inhalt: Die Seite unter 'https://example.com' wurde über HTTPS geladen, hat aber eine unsichere Ressource angefordert 'http://example.com/mediafiles/bar/'. Diese Anfrage wurde blockiert; der Inhalt muss über HTTPS bereitgestellt werden.

Irgendwelche Ideen?


Scheint damit zusammenzuhängen:https://stackoverflow.com/questions/15555428/nginx-causes-301-redirect-if-theres-no-trailing-slash

verwandte Informationen