جدید!
سرور ابری ساعتی فعال شد. ۱۰۰ هزار تومان اعتبار هدیه بگیرید
نصب Django روی سرور؛ راهنمای CentOS با Nginx 2026

آموزش سرور | بلاگ وب‌داده

نصب Django روی سرور؛ راهنمای قدم‌به‌قدم CentOS با Nginx و Gunicorn

از نصب پایتون ۳ و PostgreSQL تا Gunicorn، سرویس systemd و ریورس‌پراکسی Nginx — یک مسیر کامل و امن برای اجرای جنگو روی سرور لینوکس.
نصب Django روی سرور یعنی آماده‌سازی یک پشته کامل و حرفه‌ای تا اپلیکیشن جنگوی شما به‌جای سرور توسعه، روی یک محیط پایدار و امن سرو شود. در این راهنما گام‌به‌گام روی CentOS 7 پیش می‌رویم: نصب پایتون ۳، راه‌اندازی دیتابیس PostgreSQL، ساخت محیط مجازی و نصب جنگو و Gunicorn، تعریف یک سرویس systemd برای پایداری، و در نهایت پیکربندی Nginx به‌عنوان ریورس‌پراکسی همراه با تنظیمات فایروال و SELinux. هدف این است که حتی اگر تازه‌کار باشید، بدون گیر کردن در نیمه راه، اپلیکیشن خود را از صفر تا اجرای واقعی روی سرور برسانید.
  • چرا Gunicorn و Nginx: جنگو نباید مستقیم در معرض اینترنت باشد؛ Gunicorn اپ را اجرا و Nginx جلوی آن می‌ایستد.
  • پایتون ۳ روی CentOS 7: پایتون پیش‌فرض سیستم 2.7.5 است و باید پایتون ۳ را جداگانه از SCL نصب کنید.
  • نسخه سازگار: روی پایتون 3.6 آخرین جنگوی پشتیبانی‌شده نسخه 3.2 LTS است؛ نه نسخه‌های جدیدتر.
  • پایداری با systemd: سرویس Gunicorn را با systemd مدیریت کنید تا با هر ری‌استارت خودکار بالا بیاید.
  • صادقانه: CentOS 7 به پایان پشتیبانی رسیده و برای پروژه تازه بهتر است سراغ توزیع جدیدتر بروید.

در یک جمله

استقرار جنگو روی سرور یعنی زنجیره «اپ جنگو ← Gunicorn ← سوکت ← Nginx» را درست و امن کنار هم بچینید — و برای اجرای آن می‌توانید سرور مجازی لینوکس را از وب‌داده تهیه کنید.
حتماً این مقاله را باز کرده‌اید چون اپلیکیشن جنگوی شما روی لپ‌تاپ کار می‌کند اما نمی‌دانید چطور آن را روی یک سرور واقعی و در دسترس کاربران قرار دهید. در ادامه به‌جای کلی‌گویی، با دستورهای واقعی و تاییدشده این مسیر را کامل طی می‌کنیم.

نصب Django روی سرور: استک Nginx، Gunicorn و جنگو چگونه کار می‌کند؟

جنگو یک فریم‌ورک قدرتمند پایتون برای ساخت وب‌اپلیکیشن است، اما سرور توسعه‌ای که با دستور runserver بالا می‌آید فقط برای تست ساخته شده و به‌هیچ‌وجه برای محیط واقعی مناسب نیست. برای اجرای حرفه‌ای روی سرور، به سه قطعه نیاز دارید که هر کدام یک وظیفه مشخص دارند و کنار هم یک پشته کامل می‌سازند.
نخست Gunicorn که یک سرور اپلیکیشن WSGI است و درخواست‌های HTTP را به فراخوانی‌های پایتون که اپ شما می‌فهمد ترجمه می‌کند. دوم Nginx که جلوی Gunicorn می‌ایستد، فایل‌های استاتیک را سرو می‌کند، ترافیک را مدیریت و به‌عنوان ریورس‌پراکسی عمل می‌کند. سوم هم دیتابیس (اینجا PostgreSQL) که داده‌های اپ را نگه می‌دارد.

تشبیه ساده

یک رستوران را تصور کنید: جنگو آشپز است که غذا (پاسخ) را می‌پزد، Gunicorn پیشخدمتی است که سفارش مشتری را به آشپز می‌رساند و غذا را برمی‌گرداند، و Nginx مدیر سالن است که در ورودی می‌ایستد، مشتری‌ها را هدایت می‌کند و منوی ثابت (فایل‌های استاتیک) را خودش تحویل می‌دهد. بدون این تقسیم وظیفه، آشپزخانه در شلوغی فلج می‌شود.
نمودار استک نصب Django روی سرور شامل Nginx، Gunicorn و دیتابیس PostgreSQL روی CentOS

پیش‌نیازهای لازم برای شروع

پیش از اجرای دستورها، خوب است این موارد آماده باشد. نبودِ هرکدام معمولاً عامل گیر کردن در همان مراحل اول است:

۱) دسترسی به سرور

یک سرور مجازی با CentOS 7، آدرس IP، دسترسی کاربر root و یک ابزار اتصال SSH. برای شروع کار، آشنایی با اتصال به سرور لازم است.

۲) دامنه یا IP ثابت

برای دسترسی عمومی به اپ، یک آدرس IP ثابت یا دامنه که به سرور اشاره کند لازم است تا در ALLOWED_HOSTS و تنظیم Nginx از آن استفاده کنید.

۳) دانش پایه پایتون و لینوکس

آشنایی مقدماتی با دستورهای لینوکس، مفهوم محیط مجازی پایتون و یک ویرایشگر متن مثل nano کافی است؛ نیازی به تخصص پیشرفته نیست.

هشدار مهم؛ CentOS 7 به پایان عمر رسیده است

طبق اعلام رسمی Red Hat، عمر پشتیبانی CentOS 7 در تاریخ 30 ژوئن 2024 به پایان رسیده و دیگر هیچ به‌روزرسانی یا وصله امنیتی رسمی دریافت نمی‌کند. اگر پروژه‌ای تازه راه می‌اندازید، توصیه می‌کنیم به‌جای CentOS 7 سراغ توزیع‌های جایگزین مثل AlmaLinux، Rocky Linux یا اوبونتو LTS بروید. این راهنما برای سرورهای موجود یا محیط‌های ایزوله مفید است، اما نصب تازه روی یک سیستم منسوخ از نظر امنیتی ریسک دارد.
اگر هنوز با ورود به سرور راحت نیستید، ابتدا راهنمای اتصال به سرور لینوکس و اتصال به SSH بدون PuTTY را مرور کنید و برای ویرایش فایل‌های تنظیمات با ویرایشگر Nano آشنا شوید تا مراحل بعد روان‌تر پیش برود.

آموزش گام‌به‌گام نصب جنگو روی لینوکس

مراحل زیر را به همین ترتیب انجام دهید. هر مرحله پیش‌نیاز مرحله بعد است؛ پس تا یک گام کامل و تست نشده، سراغ گام بعدی نروید.

مرحله ۱: نصب مخازن، پایتون ۳ و بسته‌های پایه

ابتدا سیستم را به‌روز کنید، مخزن EPEL را فعال و ابزارهای موردنیاز همراه با Nginx را نصب کنید. چون پایتون پیش‌فرض CentOS 7 نسخه 2.7.5 است، پایتون ۳ را از طریق Software Collections نصب می‌کنیم تا ابزارهای سیستمی مثل yum دست‌نخورده بمانند:
# اتصال به سرور و به‌روزرسانی کامل سیستم
ssh root@SERVER_IP
sudo yum update -y

# فعال‌سازی مخزن EPEL و نصب ابزارهای پایه + Nginx
sudo yum install -y epel-release
sudo yum install -y python-devel postgresql-server postgresql-devel \
                    postgresql-contrib gcc nginx

# نصب پایتون ۳ از طریق Software Collections (پایتون سیستمی 2.7.5 دست‌نخورده می‌ماند)
sudo yum install -y centos-release-scl scl-utils-build
sudo yum install -y rh-python36

# فعال‌سازی محیط پایتون ۳ برای نشست جاری
scl enable rh-python36 bash
python --version   # باید Python 3.6.x را نشان دهد
Bash

مرحله ۲: راه‌اندازی دیتابیس PostgreSQL

جنگو به‌صورت پیش‌فرض با SQLite کار می‌کند، اما برای محیط واقعی یک دیتابیس قدرتمندتر مثل PostgreSQL توصیه می‌شود. دیتابیس را مقداردهی اولیه کنید، احراز هویت رمز را فعال و یک دیتابیس و کاربر اختصاصی برای پروژه بسازید:
# مقداردهی اولیه و راه‌اندازی PostgreSQL
sudo postgresql-setup initdb
sudo systemctl start postgresql

# در فایل pg_hba.conf متد احراز هویت host را به md5 تغییر دهید
sudo nano /var/lib/pgsql/data/pg_hba.conf
#   host    all   all   127.0.0.1/32   md5
#   host    all   all   ::1/128        md5

sudo systemctl restart postgresql
sudo systemctl enable postgresql

# ساخت دیتابیس و کاربر برای پروژه (رمز قوی انتخاب کنید)
sudo su - postgres
psql
CREATE DATABASE myproject;
CREATE USER myprojectuser WITH PASSWORD 'STRONG_PASSWORD';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
\q
exit
Bash

مرحله ۳: ساخت محیط مجازی و نصب جنگو و Gunicorn

بهترین کار این است که وابستگی‌های پروژه را در یک محیط مجازی (virtualenv) ایزوله نگه دارید تا با پایتون سیستم تداخل نکنند. توجه کنید که روی پایتون 3.6، نسخه پایدار و سازگار جنگو نسخه 3.2 LTS است:
# نصب pip و ابزار virtualenv در محیط پایتون ۳
pip install --upgrade pip
pip install virtualenv

# ساخت پوشه پروژه و محیط مجازی ایزوله
mkdir ~/myproject && cd ~/myproject
virtualenv myprojectenv
source myprojectenv/bin/activate

# نصب Django، Gunicorn و درایور PostgreSQL داخل محیط مجازی
# روی پایتون 3.6، نسخه پایدار سازگار Django نسخه 3.2 LTS است
pip install "django==3.2.*" gunicorn psycopg2-binary
Bash

نکته سازگاری نسخه

روی CentOS 7 با پایتون 3.6 از SCL، نمی‌توانید جنگو 4.x یا 5.x را نصب کنید چون این نسخه‌ها حداقل پایتون 3.8 می‌خواهند. اگر حتماً به جنگوی جدیدتر نیاز دارید، باید پایتون 3.8 یا بالاتر را از سورس کامپایل کنید یا از مخزن IUS استفاده کنید. برای اغلب پروژه‌ها، جنگو 3.2 LTS انتخاب امن و پشتیبانی‌شده‌ای است.

مرحله ۴: ساخت پروژه و تنظیم settings

حالا پروژه جنگو را بسازید و فایل تنظیمات را ویرایش کنید: آدرس سرور را به ALLOWED_HOSTS اضافه کنید، اطلاعات دیتابیس PostgreSQL را وارد و مسیر فایل‌های استاتیک را مشخص کنید. سپس مهاجرت‌ها را اجرا و فایل‌های استاتیک را جمع‌آوری کنید:
# ساخت پروژه Django در پوشه جاری (نقطه پایانی مهم است)
django-admin startproject myproject .

# تنظیمات اصلی را در فایل settings.py ویرایش کنید:
#   ALLOWED_HOSTS = ['SERVER_IP', 'your-domain.com']
#   DATABASES → موتور postgresql با نام/کاربر/رمز بالا
#   STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

# اجرای مهاجرت‌ها، ساخت کاربر مدیر و جمع‌آوری فایل‌های استاتیک
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py collectstatic

# تست سریع با سرور توسعه (پورت ۸۰۰۰ را موقتاً در فایروال باز کنید)
python manage.py runserver 0.0.0.0:8000
Bash

هشدار؛ DEBUG را در محیط واقعی خاموش کنید

پیش از انتشار عمومی حتماً مقدار DEBUG را در settings.py روی False بگذارید و SECRET_KEY را به‌صورت امن (مثلاً از متغیر محیطی) نگه دارید. اجرای اپ با DEBUG=True در سرور واقعی، اطلاعات حساس و جزئیات خطاها را به مهاجمان نشان می‌دهد.

مرحله ۵: تست Gunicorn

پیش از خودکارسازی، یک‌بار Gunicorn را دستی اجرا کنید تا مطمئن شوید اپ را درست سرو می‌کند. در این حالت صفحه بدون استایل بالا می‌آید چون Gunicorn فایل‌های استاتیک را سرو نمی‌کند؛ این طبیعی است و در مرحله Nginx حل می‌شود:
# تست Gunicorn به‌صورت دستی (از داخل پوشه پروژه و محیط مجازی فعال)
gunicorn --bind 0.0.0.0:8000 myproject.wsgi

# اگر صفحه بدون استایل ولی سالم بالا آمد یعنی Gunicorn درست کار می‌کند
# با CTRL+C متوقف کنید و از محیط مجازی خارج شوید
deactivate
Bash

مرحله ۶: ساخت سرویس systemd برای Gunicorn

اجرای دستی Gunicorn با بستن ترمینال متوقف می‌شود. برای پایداری، یک فایل سرویس systemd بسازید تا Gunicorn به‌صورت خودکار با بوت سیستم بالا بیاید و در صورت کرش دوباره راه بیفتد. کاربر را مالک پروسه و گروه را nginx قرار می‌دهیم تا Nginx به سوکت دسترسی داشته باشد:
# فایل: /etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=deploy
Group=nginx
WorkingDirectory=/home/deploy/myproject
ExecStart=/home/deploy/myproject/myprojectenv/bin/gunicorn \
          --workers 3 \
          --bind unix:/home/deploy/myproject/myproject.sock \
          myproject.wsgi:application

[Install]
WantedBy=multi-user.target
INI

مرحله ۷: پیکربندی Nginx، فایروال و SELinux

در گام آخر، Nginx را به‌عنوان ریورس‌پراکسی تنظیم می‌کنیم تا ترافیک را به سوکت Gunicorn بفرستد و فایل‌های استاتیک را خودش تحویل دهد. سپس مجوز دسترسی Nginx به پوشه کاربر را می‌دهیم، پورت ۸۰ را در فایروال باز و بولین SELinux لازم را فعال می‌کنیم:
# راه‌اندازی و فعال‌سازی سرویس Gunicorn
sudo systemctl start gunicorn
sudo systemctl enable gunicorn

# بلوک سرور Nginx را در /etc/nginx/nginx.conf اضافه کنید:
#   server {
#     listen 80;
#     server_name SERVER_IP your-domain.com;
#     location /static/ { root /home/deploy/myproject; }
#     location / {
#       proxy_set_header Host $http_host;
#       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#       proxy_pass http://unix:/home/deploy/myproject/myproject.sock;
#     }
#   }

# اجازه دسترسی Nginx به پوشه کاربر + باز کردن فایروال
sudo usermod -a -G deploy nginx
sudo chmod 710 /home/deploy
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

# مجوز SELinux برای اتصال Nginx به سوکت Gunicorn (وگرنه خطای 502)
sudo setsebool -P httpd_can_network_connect 1

# تست پیکربندی و ری‌استارت Nginx
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl enable nginx
Bash

چرا تنظیم SELinux ضروری است

روی CentOS 7 سیاست SELinux به‌صورت پیش‌فرض اجازه نمی‌دهد Nginx به سرویس‌های پشتیبان (مثل سوکت Gunicorn) متصل شود و نتیجه‌اش خطای 502 Bad Gateway است. فعال‌کردن بولین httpd_can_network_connect این اجازه را می‌دهد. این یکی از رایج‌ترین دلایل کار نکردن استک روی CentOS است.
اجرای دستورهای پیکربندی Nginx و Gunicorn برای نصب Django روی سرور CentOS در ترمینال لینوکس

سازگاری نسخه پایتون و جنگو روی CentOS 7

انتخاب نسخه درست مهم‌ترین تصمیم پیش از نصب است. جدول زیر نشان می‌دهد هر نسخه پایتون با کدام نسخه جنگو سازگار است و روی CentOS 7 چه گزینه‌ای در دسترس دارید:
نسخه پایتونجنگوهای پشتیبانی‌شدهروش نصب روی CentOS 7توضیح
2.7.5 (پیش‌فرض)هیچ‌کدام (جنگو ۲ به بعد)پیش‌نصبفقط برای ابزارهای سیستمی؛ برای جنگو استفاده نکنید
3.6 (SCL)تا Django 3.2 LTSyum install rh-python36ساده‌ترین مسیر؛ گزینه پیشنهادی این راهنما
3.8 و بالاترتا Django 4.2 LTSکامپایل از سورس یا مخزن IUSبرای جنگوی جدید لازم است؛ پیچیده‌تر
به‌طور خلاصه روی CentOS 7 با کم‌ترین دردسر، پایتون 3.6 و جنگو 3.2 بهترین ترکیب است. برای اجرای پایدار این استک، یک سرور مجازی با منابع کافی انتخاب کنید.

از منابع معتبر

طبق مستندات رسمی جنگو، هر نسخه فقط بازه مشخصی از نسخه‌های پایتون را پشتیبانی می‌کند و توصیه می‌شود همیشه از جدیدترین نسخه پایتونِ پشتیبانی‌شده استفاده کنید. منبع: Django Documentation — FAQ: Installation.

محدودیت‌ها و نکاتی که باید صادقانه بدانید

این روش استقرار قدرت و کنترل کامل می‌دهد، اما بدون چالش نیست. شناخت این محدودیت‌ها کمک می‌کند انتظار درستی داشته باشید:
  • CentOS 7 منسوخ است: این سیستم‌عامل دیگر وصله امنیتی نمی‌گیرد؛ برای پروژه تازه از توزیع جدیدتر استفاده کنید.
  • پایتون 3.6 هم EOL است: شما را به نسخه‌های قدیمی‌تر جنگو محدود می‌کند و امکانات جدید فریم‌ورک در دسترس نخواهد بود.
  • پیکربندی دستی خطاخیز است: تنظیم systemd، مجوزها و SELinux برای تازه‌کار می‌تواند گیج‌کننده باشد و خطای 502 رایج است.
  • بدون Nginx فایل استاتیک سرو نمی‌شود: Gunicorn به‌تنهایی استایل و رسانه را تحویل نمی‌دهد؛ Nginx الزامی است.
  • HTTPS جداست: این راهنما روی HTTP است؛ برای محیط واقعی باید گواهی SSL (مثلاً Let’s Encrypt) را جداگانه نصب کنید.

عیب‌یابی مشکلات رایج

اگر در میانه راه به مشکل خوردید، معمولاً یکی از این موارد دلیلش است. پیش از تغییرهای بزرگ این فهرست را مرور کنید:
  • خطای 502 Bad Gateway: رایج‌ترین مشکل؛ معمولاً یعنی بولین SELinux فعال نشده یا سرویس Gunicorn اجرا نیست. با sudo systemctl status gunicorn وضعیت را ببینید و setsebool را اجرا کنید.
  • صفحه بدون استایل (CSS): یعنی فایل‌های استاتیک جمع نشده یا مسیر static در Nginx اشتباه است؛ collectstatic را اجرا و مسیر root را بررسی کنید.
  • DisallowedHost: آدرس سرور در ALLOWED_HOSTS تنظیم نشده؛ IP یا دامنه را به این لیست در settings.py اضافه کنید.
  • خطای اتصال دیتابیس: اطلاعات DATABASES یا متد md5 در pg_hba.conf را چک کنید و مطمئن شوید سرویس postgresql اجرا است.
  • دستور python نسخه ۲ را نشان می‌دهد: فراموش کرده‌اید scl enable rh-python36 bash را اجرا کنید یا محیط مجازی فعال نیست.

اجرای جنگو روی زیرساخت وب‌داده

برای اینکه این استک روی بستری پایدار اجرا شود، به سروری نیاز دارید که هم منابع کافی و هم اتصال شبکه باکیفیت داشته باشد. در وب‌داده، سرور مجازی لینوکس با همین هدف فراهم شده تا توزیع دلخواه را نصب کنید، دسترسی کامل root بگیرید و محیط را دقیقاً مطابق نیاز پروژه خود بسازید.
✅ زیرساخت نسل جدید HPE (Gen11 و Gen10) برای پایداری و کارایی بالا.
✅ دیتاسنترهای ایران، هلند و آلمان برای انتخاب نزدیک‌ترین لوکیشن به کاربران شما.
✅ امکان ارتقای منابع متناسب با رشد اپلیکیشن، بدون نیاز به مهاجرت.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در راه‌اندازی و رفع مشکلات اتصال.
اگر در انتخاب سیستم‌عامل مناسب تردید دارید، راهنمای انتخاب سیستم‌عامل سرور مجازی کمک‌کننده است. پلن‌ها را هم می‌توانید در صفحه سرور مجازی وب‌داده ببینید.

پرسش‌های پرتکرار درباره استقرار جنگو روی سرور

چرا نباید اپ جنگو را با runserver روی سرور اجرا کنم؟

سرور توسعه‌ای جنگو که با دستور runserver بالا می‌آید فقط برای تست در حین توسعه طراحی شده و از نظر امنیت و کارایی برای محیط واقعی مناسب نیست. تیم جنگو رسماً تاکید می‌کند این سرور را در محیط عملیاتی استفاده نکنید و به‌جای آن از یک سرور اپلیکیشن مثل Gunicorn پشت Nginx بهره ببرید.

Gunicorn یک سرور اپلیکیشن WSGI است که کد پایتون جنگو را اجرا می‌کند و درخواست‌ها را به اپ می‌رساند. Nginx یک وب‌سرور و ریورس‌پراکسی است که جلوی Gunicorn می‌ایستد، فایل‌های استاتیک را سرو می‌کند و ترافیک را مدیریت می‌کند. این دو مکمل هم هستند، نه جایگزین یکدیگر.

چون پایتونی که به‌سادگی روی CentOS 7 از SCL نصب می‌شود نسخه 3.6 است و جنگو 3.2 آخرین نسخه‌ای است که از پایتون 3.6 پشتیبانی می‌کند. جنگو 4.2 به بعد حداقل پایتون 3.8 می‌خواهد. برای نصب جنگوی جدیدتر باید پایتون 3.8+ را از سورس کامپایل کنید.

خیر، اجباری نیست. جنگو از SQLite، MySQL/MariaDB و PostgreSQL پشتیبانی می‌کند. SQLite برای تست خوب است اما برای محیط واقعی توصیه نمی‌شود. PostgreSQL به‌دلیل پایداری و سازگاری خوب با جنگو یک انتخاب رایج و مطمئن برای پروژه‌های عملیاتی است.

این خطا معمولاً یعنی Nginx نمی‌تواند به سوکت Gunicorn متصل شود. شایع‌ترین دلیل روی CentOS این است که بولین SELinux یعنی httpd_can_network_connect فعال نشده است. همچنین بررسی کنید سرویس Gunicorn در حال اجرا باشد و مسیر سوکت در تنظیمات Nginx درست باشد.

بدون systemd، اگر ترمینال را ببندید یا سرور ری‌استارت شود، Gunicorn متوقف می‌ماند. تعریف یک سرویس systemd باعث می‌شود Gunicorn به‌صورت خودکار با بوت سیستم بالا بیاید، در صورت کرش دوباره راه بیفتد و با دستورهای ساده systemctl قابل مدیریت باشد.

این راهنما روی HTTP تمرکز دارد. برای فعال‌کردن HTTPS می‌توانید یک گواهی رایگان از Let’s Encrypt با ابزار Certbot بگیرید و آن را در پیکربندی Nginx اضافه کنید. این کار ترافیک بین کاربر و سرور را رمزنگاری می‌کند و برای هر سایت عملیاتی ضروری است.

مفهوم و معماری استک کاملاً یکسان است، اما ابزارها فرق دارند. روی اوبونتو به‌جای yum از apt، پایتون ۳ به‌صورت پیش‌فرض موجود است، فایروال ufw است و SELinux معمولاً فعال نیست. منطق Gunicorn، سرویس systemd و ریورس‌پراکسی Nginx در هر دو یکسان است.

پس از انتقال کد جدید به سرور، محیط مجازی را فعال کنید، در صورت تغییر مدل‌ها migrate را اجرا کنید، اگر فایل استاتیک تغییر کرده collectstatic بزنید و در پایان سرویس را با دستور sudo systemctl restart gunicorn ری‌استارت کنید تا تغییرها اعمال شوند.

جمع‌بندی و قدم بعدی شما

در این راهنما دیدیم که اجرای حرفه‌ای جنگو روی سرور یک مسیر روشن دارد: ابتدا پایتون ۳ و بسته‌های پایه را نصب می‌کنید، سپس PostgreSQL را راه می‌اندازید، در یک محیط مجازی جنگو و Gunicorn را نصب می‌کنید، پروژه را می‌سازید و تنظیم می‌کنید، با systemd سرویس Gunicorn را پایدار می‌کنید و در پایان Nginx را به‌عنوان ریورس‌پراکسی همراه با تنظیم فایروال و SELinux پیکربندی می‌کنید. اگر این مراحل را به‌ترتیب و با دقت انجام دهید، اپلیکیشن شما روی یک پشته استاندارد و قابل‌اتکا اجرا می‌شود. فقط فراموش نکنید که برای پروژه‌های تازه، انتخاب یک توزیع به‌روزتر از CentOS 7 از نظر امنیتی عاقلانه‌تر است.

جمع‌بندی سریع

✅ پایتون ۳ را از SCL نصب و جنگو 3.2 سازگار را انتخاب کنید.
✅ PostgreSQL و محیط مجازی را راه بیندازید.
✅ سرویس systemd برای Gunicorn بسازید تا پایدار بماند.
✅ Nginx، فایروال و بولین SELinux را درست تنظیم کنید تا خطای 502 نگیرید.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
وب داده
وب داده

جدید ترین مطالب آموزشی و کاربردی را در اینجا بخوانید !
ما با بهره‌گیری از دانش روز و تجربه متخصصان حوزه فناوری، مجموعه‌ای از آموزش‌های کاربردی و مقالات تخصصی را گردآوری کرده‌ایم که هر یک، پاسخی دقیق به پرسش‌های شماست. ؛ از مفاهیم پایه تا پیچیده‌ترین تکنیک‌های حرفه‌ای. اینجا، دانش با زبانی ساده اما عمیق در اختیار شما قرار می‌گیرد.

مقاله‌ها: 116
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *