"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > उत्पादन के लिए django तैनात करें

उत्पादन के लिए django तैनात करें

2024-11-07 को प्रकाशित
ब्राउज़ करें:698

मैंने हाल ही में अपना स्वयं का django एप्लिकेशन उत्पादन में तैनात किया है। वेबसाइट का नाम videiro.com है और इसे django HTML/CSS/JS टेलविंड में विकसित किया गया था।

स्थापित करना

मैं एक डेबियन 12 सर्वर का उपयोग कर रहा हूं जो क्लाउडफ्लेयर सुरंगों के माध्यम से मेरे एप्लिकेशन को उजागर करेगा। सभी स्थिर फ़ाइलें nginx के माध्यम से परोसी जा रही हैं और Django प्रोजेक्ट गुनिकॉर्न द्वारा चलाया जा रहा है।

इस गाइड में मैं आपको दिखाऊंगा कि मैंने इसे कैसे सेट किया।

Django प्रोजेक्ट तैयार किया जा रहा है

पहली चीज़ जो आपको करनी होगी वह है सेटिंग्स.py खोलें और निम्नलिखित को बदलें

Debug = False
ALLOWED_HOSTS = ['yourdomain.tld']
CSRF_COOKIE_SECURE = True
CSRF_TRUSTED_ORIGINS = [
    'yourdomain.tld',
]

आपको SECRET_KEY को एक लंबी यादृच्छिक स्ट्रिंग में भी बदलना चाहिए, जिसे आपको कभी भी किसी के साथ साझा नहीं करना चाहिए।

उसके बाद .gitignore नामक एक नई फ़ाइल बनाएं और निम्नलिखित पेस्ट करें:

db.sqlite3
*.pyc

यह सुनिश्चित करेगा कि डेटाबेस हमारे सर्वर पर अपलोड नहीं किया गया है और कोई pyc फ़ाइलें भी अपलोड नहीं की गई हैं।

अब आप अपने प्रोजेक्ट को एक नए जीथब रिपॉजिटरी (या जीटिया रिपॉजिटरी) पर अपलोड कर सकते हैं। यदि आप नहीं चाहते कि हर किसी को आपके स्रोत कोड तक पहुंच प्राप्त हो, तो सुनिश्चित करें कि रिपॉजिटरी को निजी के रूप में सेट किया जाए।

यदि आप यह सुनिश्चित करना चाहते हैं कि आपका स्रोत कोड निजी रहे तो मैं आपको एक सेल्फहोस्टेड गीता इंस्टेंस सेटअप करने की सलाह देता हूं, यह कैसे करना है यह जानने के लिए सेल्फहोस्ट अपना खुद का गीता इंस्टेंस - सेल्फहोस्टेड, हल्का जीथब विकल्प पढ़ें।

git init
git branch -M main
git add .
git commit -m "initial commit"
git remote add origin https://...
git push -u origin main

अब हमने यह कर लिया है कि आपको अपने सर्वर पर लॉगइन करना चाहिए

सर्वर सेटअप

कुछ भी कॉन्फ़िगर करने से पहले सुनिश्चित करें कि आप पासवर्ड के साथ किसी भी एसएसएच लॉगिन की अनुमति नहीं देते हैं। अपने सर्वर को इस प्रकार के हमलों से सुरक्षित करने के लिए कुंजी-आधारित प्रमाणीकरण के साथ सिक्योरिंग एसएसएच का पालन करें।

अपने सर्वर पर लॉगिन करें

ssh [email protected]

सुनिश्चित करें कि आपके पैकेज डेटा पर निर्भर हैं

sudo apt update && sudo apt upgrade

अब पायथन, पिप, गिट और nginx इंस्टॉल करें

sudo apt install python3 python3-pip git nginx

अब अपने प्रोजेक्ट को अपनी होम डायरेक्टरी में क्लोन करें।

git clone https://...
cd my-project

एक बार जब आप निम्नलिखित इंस्टॉल कर लें:

pip install django django-crispy-forms whitenoise

अब प्रोजेक्ट चलाने का प्रयास करें:

python3 manage.py runserver

यदि आपको कोई त्रुटि मिलती है कि कोई पैकेज गायब है तो उसे स्थापित करें और पुनः चलाएँ।

गुनिकॉर्न को कॉन्फ़िगर करना

अब हम गनिकोर्न सेटअप करेंगे

पहले इसे इंस्टॉल करें

pip install gunicorn

अब अपने पसंदीदा टेक्स्ट एडिटर के साथ gunicorn.service नामक एक नई फ़ाइल बनाएं:

sudo vim /etc/systemd/system/gunicorn.service

और निम्नलिखित पेस्ट करें:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=YOURUSER
Group=www-data
WorkingDirectory=/home/YOURUSER/PROJECT
ExecStart=/path/to/gunicorn --access-logfile - --workers 3 --bind 127.0.0.1:8000 PROJECTNAME.wsgi:application

[Install]
WantedBy=multi-user.target

अपने उपयोगकर्ता को अपने उपयोगकर्ता में बदलें।

गनिकोर्न रन का रास्ता खोजने के लिए:

which gunicorn

और आपके प्रोजेक्ट का नाम आपके प्रोजेक्ट के अंदर उस फ़ोल्डर का नाम है जिसमें सेटिंग्स.py फ़ाइल है।

अब गनिकोर्न को शुरू करने और सक्षम करने के लिए निम्नलिखित कमांड चलाएँ (बूट पर शुरू करें)

sudo systemctl daemon-reload
sudo systemctl start gunicorn.service
sudo systemctl enable gunicorn.service

अब यदि आप 127.0.0.1:8000 पर जाते हैं तो आपको अपना प्रोजेक्ट चलता हुआ देखना चाहिए।

लेकिन अभी तक समाप्त नहीं हुए थे

nginx की स्थापना

अब हमें nginx के माध्यम से अपनी स्थिर सामग्री परोसने की आवश्यकता है।

सबसे पहले अपने पसंदीदा टेक्स्ट एडिटर के साथ एक नई फ़ाइल nginx कॉन्फ़िगरेशन फ़ाइल बनाएं:

sudo vim /etc/nginx/sites-available/PROJECT

प्रोजेक्ट को अपनी इच्छानुसार बदलें

अब निम्नलिखित सामग्री चिपकाएँ:

server {
    listen 80;
    server_name YOURDOMAIN;

    location /static/ {
    alias /var/www/staticfiles/;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

बस अपने डोमेन को उस डोमेन में बदलें जिस पर इसे होस्ट किया जाएगा।

अपनी वेबसाइट को सक्षम करने के लिए एक प्रतीकात्मक लिंक बनाएं:

sudo ln -s /etc/nginx/sites-available/PROJECT /etc/nginx/sites-enabled/

nginx प्रारंभ और सक्षम करें:

sudo systemctl start nginx
sudo systemctl enable nginx

स्थिर फ़ाइलें सेटअप करें

पहली चीज़ जो आपको करनी होगी वह है अपने (django) प्रोजेक्ट में सीडी डालना

cd project

अब निम्न कमांड चलाएँ:

python3 manage.py collectstatic

यह staticfiles नामक एक नया फ़ोल्डर बनाएगा

अब स्थिर फ़ाइलें सेट करने के लिए हमारे पास दो विकल्प हैं:

  1. उपयोगकर्ता को /etc/nginx/nginx.conf में अपने उपयोगकर्ता में बदलें (कम सुरक्षित)
  2. स्टेटिकफाइल्स को /var/www/ पर कॉपी करें (अधिक सुरक्षित)

मैं दूसरा विकल्प अपनाऊंगा:

सबसे पहले /var/www
में staticfiles नामक एक नई फ़ाइल बनाएं

sudo mkdir -p /var/www/staticfiles

अब अपने प्रोजेक्ट से सभी स्टेटिकफाइल्स को वहां कॉपी करें:

sudo cp staticfiles/* /var/www/staticfiles

अब /var/www
में सीडी डालें

cd /var/www

सभी फ़ाइलों का स्वामित्व बदलें

sudo chown www-data:www-data staticfiles
sudo chown www-data:www-data staticfiles/*

nginx सेवा पुनः प्रारंभ करें:

sudo systemctl restart nginx

अब यदि आप यहां जाएं:

127.0.0.1

आपको अपनी वेबसाइट को सभी स्थिर फाइलों के साथ चलते हुए देखना चाहिए!

क्लाउडफ्लेयर सुरंगों के माध्यम से उजागर होना

अब अपनी वेबसाइट को सार्वजनिक रूप से सुलभ बनाएं।

ऐसा करने के लिए आपको एक क्लाउडफ़ेयर खाते और क्लाउडफ़ेयर की ओर इंगित एक डोमेन की आवश्यकता होगी।

जीरो ट्रस्ट डैशबोर्ड पर सबसे पहले जाएं

नेटवर्क के अंतर्गत सुरंगों पर क्लिक करें और फिर एक सुरंग बनाएं

एक बार कनेक्टर स्थापित करने और चलाने के बाद, अपने विशिष्ट सेटअप के लिए पृष्ठ पर दिए गए निर्देशों का पालन करें।

कनेक्टर चलने के बाद आपको सार्वजनिक होस्टनाम टैब पर क्लिक करना चाहिए और एक सार्वजनिक होस्टनाम जोड़ना चाहिए।

अब आपको कुछ इस तरह देखना चाहिए: Deploy django to production

जैसा मेरे पास है, वैसी जानकारी भरें। सेवा का प्रकार HTTP होना चाहिए और url 127.0.0.1:80 या localhost:80

होना चाहिए

अब यदि आप अपने द्वारा निर्दिष्ट डोमेन पर जाते हैं तो आपको अपना ऐप चालू और चालू दिखना चाहिए।

बधाई हो!

यदि आपको यह पोस्ट अच्छी लगी और आप मेरे (ज्यादातर अवैतनिक) काम का समर्थन करना चाहते हैं, तो आप यहां दान कर सकते हैं।

मेरे मुफ़्त न्यूज़लेटर से जुड़ें!

यहाँ शामिल होएं

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/4rkal/deploy-django-to-production-4bn0?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3