Novo no nginx. Jogou com ele por 2 dias e não consegue descobrir como resolver isso:
Eu tenho um monte de VMs rodando em uma caixa, a caixa está atrás do meu roteador, obviamente, uma das VMs está rodando nginx (meu proxy reverso) e está configurada como DMZ.
Eu tenho o certificado SSL instalado nessa VM corretamente, agora quero que todo o tráfego de entrada seja direcionado de acordo com o caminho, por exemplo:
domain.com/service1->192.168.1.101
domain.com/service2->192.168.1.102
E assim por diante. A idéia é deixar o nginx funcionar como a camada SSL e o nginx se comunica com outras VMs via HTTP ou qualquer outro protocolo não criptografado. Então, é claro, quando o nginx falar de volta ao cliente, as mensagens serão criptografadas.
Eu tenho isso parcialmente funcionando. Se eu acessar via HTTP está tudo bem, exceto não criptografado, mas se eu acessar via HTTPS as páginas da web estão quebradas e eu recebi este tipo de erro: Mixed Content: The page at 'https://domain.com/service1' was loaded over HTTPS, but requested an insecure stylesheet 'http://domain.com/service1/blahblah.css'. This request has been blocked; the content must be served over HTTPS.
Eu também recebi este tipo de aviso: The page at 'https://domain.com/service1/' was loaded over HTTPS, but is submitting data to an insecure location at 'http://domain.com/service1/': this content should also be submitted over HTTPS.
Agora, para alguns dos serviços, posso hackear o próprio serviço para que ele possa ser consertado ... mas eu não quero fazer isso, porque então eu tenho que hackear todos os serviços que consomem tempo e podem potencialmente quebrar alguma coisa . Eu quero tocar os serviços o mínimo possível.
Minha configuração atual funciona com o hack, mas não funciona sem hack. Abrange todo o serviço1:
location /service1/ {
proxy_pass http://192.168.1.101/;
proxy_read_timeout 3500;
proxy_connect_timeout 3250;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header SSL_PROTOCOL $ssl_protocol;
}
Eu procurei na internet por uma solução geral, mas encontrei apenas um hack que funcionasse para um serviço. Outros exemplos nginx / howtos não ajudaram muito (ainda recebendo os erros e avisos).
Muito obrigado antecipadamente!