¿Evitar problemas de contenido mixto con las directivas try_files al usar Nginx como proxy SSL?

¿Evitar problemas de contenido mixto con las directivas try_files al usar Nginx como proxy SSL?

Estoy usando Nginx para actuar como un proxy SSL dentro de un contenedor acoplable que escucha en el puerto 443. El proxy funciona correctamente y enruta correctamente el tráfico a otra instancia de Nginx ascendente en el puerto 80 (que vive dentro de otro contenedor).

Tengo problemas de contenido mixto y no estoy seguro de cuál sería la solución adecuada:

Una solicitud dirigida a una carpeta (pero sin la barra diagonal) como: https://example.com/mediafiles/barse enruta correctamente a la segunda instancia de NginX.

Sin embargo, obtiene un 301 en una URL http (encabezados de respuesta):

$ 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

Probablemente causado por esta configuración común de try_files (EDITAR: aparentemente no emite redirecciones).

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;
}

He publicado la configuración ascendente completa aquí:https://gist.github.com/mgcrea/f149d0481ad1fa1c2207

Y la configuración de proxy relevante aquí:https://gist.github.com/mgcrea/26ef92026a20ccc22226

Este 301 a un recurso http desencadena un error de contenido mixto:

Contenido mixto: la página en 'https://ejemplo.com'se cargó a través de HTTPS, pero solicitó un recurso inseguro'http://ejemplo.com/mediafiles/bar/'. Esta solicitud ha sido bloqueada; el contenido debe entregarse a través de HTTPS.

¿Algunas ideas?


Parece estar relacionado:https://stackoverflow.com/questions/15555428/nginx-causes-301-redirect-if-theres-no-trailing-slash

información relacionada