2011-09-07 9 views
20

Tengo una aplicación flask, organizada por uwsgi, con nginx como un proxy inverso a uwsgi, utilizando el incorporado en uwsgi proxy module. Cada vez que visito una página que redirecciona a otra página, el encabezado de Ubicación apunta a una URL que no es HTTPS. Por ejemplo:no deseada HTTPS -> redirecciones HTTP con la aplicación nginx + + uwsgi frasco

$ socat openssl:my-web-server:443 stdio 
GET/HTTP/1.0 
Host: my-web-server 

HTTP/1.1 302 FOUND 
Server: nginx/1.0.4 
[...] 
Location: http://my-web-server/login 

Mi configuración nginx se ve así:

server { 
    listen 80; 
    listen 443 ssl; 
    server_name my-web-server; 
    charset utf-8; 

    ssl_certificate /etc/nginx/certs/server.pem; 
    ssl_certificate_key /etc/nginx/certs/server.key; 

    location/{ 
     uwsgi_pass unix:/tmp/uwsgi.sock; 
     include uwsgi_params; 
    } 
} 

Respuesta

28

uwsgi necesario transmitir el esquema (HTTP o HTTPS) que se utiliza para servir a la solicitud con el fin de escribir la cabecera Location correcta.

De forma predeterminada, un conjunto de configuraciones se establece en el archivo /etc/nginx/uwsgi_params. La línea include uwsgi_params; en el archivo de configuración es lo que carga estos.

Por alguna razón, sin embargo, el esquema no es una de estas configuraciones predeterminadas. Esto se puede solucionar mediante la adición de:

uwsgi_param UWSGI_SCHEME $scheme; 

a la configuración nginx después de la línea include uwsgi_params;, o mediante la adición al archivo /etc/nginx/uwsgi_params directamente.

+0

esto era exactamente lo que estaba buscando. Gracias. – stephenmuss

Cuestiones relacionadas