2014-06-09 9 views
6

मैं पोर्ट 8001 पर django चला रहा हूं, जबकि nginx पोर्ट 80 पर वेबसर्वर कर्तव्यों को संभाला जा रहा है। Nginx प्रॉक्सी विचार और कुछ आरईएसटी एपीआई Django को कॉल करता है। मैं उपयोगकर्ता पंजीकरण/प्रमाणीकरण के लिए django-allauth का उपयोग कर रहा हूँ।django-allauth: ईमेल पुष्टिकरण url को कैसे संशोधित करें?

जब कोई नया उपयोगकर्ता पंजीकृत होता है, तो django-allauth उपयोगकर्ता को क्लिक करने के लिए एक लिंक के साथ एक ईमेल भेजता है। क्योंकि django पोर्ट 8001 पर चल रहा है, लिंक http://machine-hostname:8001/accounts/confirm-email/xxxxxxxxxxxxxx

मैं यूआरएल को http://www.example.com/accounts/confirm-email/xxxxxxxx जैसा दिख सकता हूं?

धन्यवाद!

उत्तर

5

Django HTTP शीर्षलेख से होस्टनाम और बंदरगाह मिलता है। विकल्प proxy_pass से पहले अपने nginx कॉन्फ़िगरेशन में proxy_set_header Host $http_host; जोड़ें।

+0

धन्यवाद; जब मुझे अगली मौका मिल जाए तो यह कोशिश करेगा। –

+0

पुष्टि - धन्यवाद ट्रॉन –

1

मुझे एक ही समस्या थी, और यह भी पाया कि फेरंगब के समाधान से आउटगोइंग ऑलथ ईमेल पर कोई प्रभाव नहीं पड़ा। mr_tron का जवाब मुझे आधे रास्ते है, लेकिन मुझे थोड़ा और अधिक करना था:

1) nginx विन्यास में,

proxy_set_header Host $http_host 

से पहले विकल्पों proxy_pass डाल दिया।

2) settings.py में, डोमेन नाम ALLOWED_HOSTS पर जोड़ें। मैंने अपने डोमेन नाम का www संस्करण भी जोड़ा, क्योंकि मुझे दोनों पते पर यातायात मिलता है।

ALLOWED_HOSTS = ['127.0.0.1', 'example.com', 'www.example.com'] 

और, ज़ाहिर है, nginx और gunicorn को फिर से शुरू करें या जो भी आपके Django की सेवा कर रहा है। पहले चरण के साथ लेकिन दूसरा नहीं, साइट पर सभी हिट तत्काल 400 त्रुटियां थीं (DEBUG = Truesettings.py में 0)।

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