को फिर से लिखना मेरे पास एक एकल django-admin ऐप है जिसे myapp
नाम दिया गया है कि मैं अलग-अलग भौतिक बक्से, प्रति ग्राहक एक पर कई उदाहरणों को तैनात करना चाहता हूं। हालांकि, मैं उन्हें सभी को एक समान डोमेन, mydomain.com/customer1/myapp
से एक्सेस करना चाहता हूं।nginx proxy_pass के साथ एकाधिक django ऐप्स और
मैं विशिष्ट प्रॉक्सी सेटिंग्स के साथ fiddled किया है और इतने पर सुझाव कई चीजों की कोशिश की, लेकिन कोई भी काफी अपने प्रयोग के मामले फिट ... और जब से मैं दोनों nginx
और django
मैं एक नुकसान में हूँ बारे में बहुत कम जानते हैं!
मेरे वर्तमान nginx.conf है:
server {
listen 80;
server_name myserver.com
location ^~ /static {
alias /path/to/static/files/;
}
# location/{
# proxy_pass http://127.0.0.1:8001;
# }
location ^~ /customer1/myapp/static {
alias /path/to/static/files/;
}
location /customer1/myapp {
rewrite ^/customer1/myapp/(/?)(.*) /$2 break;
proxy_pass http://127.0.0.1:8001;
}
}
मैं myserver.com/customer1/myapp/admin
के माध्यम से अपेक्षित रूप से लॉगिन स्क्रीन पर मिल सकती है। हालांकि जब मैं लॉग इन करने का प्रयास करता हूं, nginx मेरे यूआरएल को myserver.com/admin
पर फिर से लिखता है जो मान्य यूआरएल नहीं है। मैं वास्तव में यूआरएल को फिर से लिखने से nginx कैसे रखूं और केवल 127.0.0.1:8001
पर पारित यूआरएल को बदलूं?
एफडब्ल्यूआईडब्ल्यू, मैं gunicorn -b 127.0.0.1:8001 -n myapp
के साथ सेवा करने के लिए बंदूक का उपयोग कर रहा हूं। अगर मैं /
स्थान को अनदेखा करता हूं और पिछले दो स्थान ब्लॉक को हटा देता हूं, तो ऐप बहुत अच्छा काम करता है।
यदि विकल्प हैं तो मैं इस दृष्टिकोण पर बहुत दूर हूं। लक्ष्य प्रत्येक परिनियोजन के लिए django कोड को संशोधित करने से बचने के लिए है और इसके बजाय नए तैनाती के लिए nginx.conf में न्यूनतम कोड जोड़ें।
परिनियोजन के बारे में प्रश्न serverfault.com –
के लिए अधिक उपयुक्त हो सकते हैं, मुझे समझ में नहीं आ रहा है, क्या आप सिर्फ डीजेंगो यूआरएल को/ग्राहक// myapp/admin/के बजाय/admin/उत्पन्न करने के लिए रिवर्स बनाने की कोशिश कर रहे हैं? – jpic
@jpic नहीं, मैं चाहता हूं कि django केवल रूट यूआरएल देखें। जैसे '127.0.0.1: 8001/admin'। मुझे लगता है कि मैं इसे nginx के साथ कर सकता हूं, लेकिन मुझे यकीन नहीं है कि कैसे। और 'serverfault.com' के बारे में नोट किया, अगर मैं यहां कुछ भी नहीं समझता, तो मैं वहां पोस्ट करूंगा, धन्यवाद। – Justin