
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/bar
se 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