Evitar problemas de conteúdo misto com as diretivas try_files ao usar o Nginx como proxy SSL?

Evitar problemas de conteúdo misto com as diretivas try_files ao usar o Nginx como proxy SSL?

Estou usando o Nginx para atuar como um proxy SSL dentro de um contêiner docker escutando na porta 443. O proxy funciona corretamente e roteia corretamente o tráfego para outra instância Nginx upstream na porta 80 (que reside dentro de outro contêiner).

Estou encontrando problemas de conteúdo misto e não tenho certeza de qual seria a solução adequada:

Uma solicitação direcionada a uma pasta (mas sem a barra final) como: https://example.com/mediafiles/baré roteada corretamente para a segunda instância do NginX.

No entanto, obtém um 301 para um URL http (cabeçalhos de resposta):

$ 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

Provavelmente causado por esta configuração try_files comum (EDIT: aparentemente não está emitindo redirecionamentos).

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

Postei a configuração upstream completa aqui:https://gist.github.com/mgcrea/f149d0481ad1fa1c2207

E a configuração do proxy relevante aqui:https://gist.github.com/mgcrea/26ef92026a20ccc22226

Este 301 para um recurso http aciona um erro de conteúdo misto:

Conteúdo misto: a página em 'https://example.com'foi carregado por HTTPS, mas solicitou um recurso inseguro'http://example.com/mediafiles/bar/'. Esta solicitação foi bloqueada; o conteúdo deve ser veiculado por HTTPS.

Alguma ideia?


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

informação relacionada