2011-09-07 12 views
20

साथ पुनर्निर्देश मैं एक flask एप्लिकेशन, के रूप में एक रिवर्स प्रॉक्सी uwsgi को, uwsgi द्वारा की मेजबानी की nginx साथ है 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 config इस तरह दिखता है:

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

संबंधित मुद्दे