2011-09-07 91 views
20

重定向我有一個flask應用程序,通過uwsgi主辦,nginx作爲反向代理向uwsgi,使用內置在uwsgi proxy module。無論何時訪問重定向到其他頁面的頁面,位置標題都會指向非HTTPS URL。例如:不需要的HTTPS - > HTTP與nginx的+ uwsgi +燒瓶應用

$ 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 

我的nginx的配置是這樣的:

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

回答

28

uwsgi需要傳遞方案(HTTP或HTTPS)用來提供爲了寫正確位置標頭的請求。

默認情況下,在/etc/nginx/uwsgi_params文件中設置了一堆設置。配置文件中的include uwsgi_params;行是加載這些行的內容。

不管什麼原因,該方案不是這些默認設置之一。這可以是固定的加入:

uwsgi_param UWSGI_SCHEME $scheme; 

到nginx的配置include uwsgi_params;行之後,或者通過將其直接加入到/etc/nginx/uwsgi_params文件。

+0

這正是我正在尋找的。謝謝。 – stephenmuss