Tengo nginx configurado para ser mi servidor web visible externamente que se comunica con un backend a través de HTTP.
El escenario que quiero lograr es:
- El cliente realiza una solicitud HTTP a nginx que se redirige a la misma URL pero a través de HTTPS
- Solicitud de proxies nginx sobre HTTP al backend
- nginx recibe respuesta del backend sobre HTTP.
- nginx pasa esto al cliente a través de HTTPS
Mi configuración actual (donde el backend está configurado correctamente) es:
servidor {
escucha 80;
nombre_servidor localhost;
ubicación ~. * {
proxy_pass http: // backend;
proxy_redirect http: // backend https: // $ host;
proxy_set_header Host $ host;
}
}
Mi problema es que la respuesta al cliente (paso 4) se envía a través de HTTP, no HTTPS. ¿Algunas ideas?
nginx
reverse-proxy
https
Micro
fuente
fuente

Estoy usando la siguiente configuración en producción
fuente
proxy_set_header X-Forwarded-Proto https;hizo el truco para mí.fuente