نحوه استقرار یک برنامه جنگو on یک VPS

استقرار یک برنامه جنگو آخرین گام در رساندن برنامه شما از توسعه به تولید است و آن را برای کاربران در سراسر جهان در دسترس قرار می دهد. این process شامل دنبال کردن بهترین شیوه ها برای اطمینان از ایمن بودن، مقیاس پذیر بودن و عملکرد بهینه برنامه شما در یک محیط زنده است.

در این مقاله، ما شما را از طریق مراحل ضروری که هر توسعه‌دهنده جنگو باید بداند برای استقرار موفقیت‌آمیز برنامه خود در VPS راهنمایی می‌کنیم.

پیش نیازها

قبل از استقرار برنامه جنگو، مطمئن شوید که یک VPS با منابع کافی دارید روی بار و ترافیک پیش بینی شده شما از آنجایی که تعیین دقیق نیازمندی ها مشکل است، توصیه می کنیم با سیستمی با تخصیص سخت افزار کمتر شروع کنید و در صورت نیاز ارتقا دهید.

شروع در 4.99 دلار در ماه، هاستینگer طرح KVM 1 میزبانی جنگو می تواند یک گزینه عالی باشد. آن 1 vCPU هسته، رم 4 گیگابایت، و 50 گیگابایت حافظه NVMe SSD باید برای یک وب سایت یا برنامه در مقیاس کوچک کافی باشد.

همانطور که پروژه شما رشد می کند، می توانید تا KVM 8 را ارتقا دهید 8 هسته vCPU، 32 گیگابایت رم، و 400 گیگابایت فضای دیسک NVMe. هاستینگer ارتقا VPS process فقط چند دقیقه طول می کشد، و سیستم ما تمام داده های شما را به طور خودکار برای ساده سازی انتقال می دهد process.

علاوه بر سخت افزار قابل اعتماد، هاستینگer VPS دارای ویژگی های مختلفی است که به ساده سازی راه اندازی و مدیریت سرور کمک می کند. مثلا جنگو را نصب می کنید روی سرور خود را بدون دستور به سادگی با انتخاب الگوی سیستم عامل.

این به صرفه جویی در زمان کمک می کند زیرا قبل از استقرار پروژه خود، باید جنگو، پایتون و سایر نرم افزارهای ضروری را نصب کنید. روی سرور شما برای یادگیری روش نصب جنگو در 4 مرحله، آموزش ما را بررسی کنید.

شما همچنین می توانید به سرور خود دسترسی داشته باشید command-line رابط از طریق مرورگر وب با استفاده از مرورگر terminal، که شما را به عنوان وارد می کند root به صورت خودکار علاوه بر این، دستیار هوش مصنوعی Kodee به شما امکان می دهد با استفاده از دستورات ساده دستورات یا کد را به راحتی بنویسید.

روش استقرار یک برنامه جنگو

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

1. آماده سازی پروژه جنگو برای استقرار

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

در حالی که در طول تولید مفید است، فعال کردن این تنظیمات در محیط زنده می‌تواند مخاطره‌آمیز باشد زیرا می‌تواند جزئیات مهم برنامه شما را در معرض دید عموم قرار دهد. برای غیرفعال کردن آن، باز کنید تنظیماتpy و تنظیم کنید اشکال زدایی پارامتر به نادرست:

DEBUG = False

در مرحله بعد، کد خود را با حذف داده های حساس از برنامه خود، مانند کلیدهای API و سایر اطلاعات کاربری، پاکسازی کنید. این امر از عمومی شدن اطلاعات مهم پس از آپلود پروژه در مخزن جلوگیری می کند.

اکنون، تمام فایل های پروژه خود را در یک مخزن Git آپلود کنید. برای این آموزش، ما از GitHub استفاده خواهیم کرد، اما شما می توانید یک پلتفرم جایگزین مانند GitLab را انتخاب کنید.

اگر حساب کاربری و مخزن ایجاد نکرده اید، آموزش GitHub ما را بررسی کنید تا روش انجام این کار را بیاموزید. پس از تنظیم، مراحل زیر را برای آپلود فایل های پروژه دنبال کنید:

  1. به قسمت اصلی بروید page از مخزن شما
  2. را کلیک کنید فایل اضافه کنید دکمه → فایل ها را آپلود کنید.
  1. تمام فایل ها و پوشه هایی را که می خواهید آپلود کنید انتخاب کنید.
  2. پیام commit را اضافه کنید تا سایر کاربران مخزن را در مورد آپلود جدید مطلع کنید.
  3. شعبه ای را که می خواهید فایل ها را در آن آپلود کنید انتخاب کنید. از آنجایی که از نو شروع می کنیم، آن را انتخاب کنید شعبه اصلی.
  4. کلیک کنید پیشنهاد تغییرات.

همچنین، می‌توانید با اجرای دستورات در محیط توسعه یکپارچه خود (IDE) فایل‌های جدید را در مخزن GitHub خود آپلود کنید. terminal. بررسی کنید مستندات GitHub در مورد افزودن فایل ها برای کسب اطلاعات بیشتر در مورد آن.

پیشنهاد می‌کنیم بخوانید:  بایگانی VPS

2. راه اندازی سرور

در مرحله بعد، باید VPS خود را برای استقرار آماده کنید و کد خود را در آن دانلود کنید:

  1. از طریق SSH به VPS خود متصل شوید. اگر استفاده می کنید هاستینگerمرورگر terminal، از این مرحله رد شوید زیرا به طور خودکار وارد سیستم خواهید شد:
ssh root@your_vps_ip
  1. خود را وارد کنید root رمز عبور حساب
  2. را نصب کنید Nginx وب سرور و گونیکورن سرور برنامه:
sudo apt install nginx
sudo pip3 install gunicorn
  1. بازیابی کد از GitHub فراموش نکنید که URL را با آدرس مخزن واقعی خود جایگزین کنید:
git clone https://github.com/your-repository/project-name.git
cd project-name
  1. یک محیط مجازی پایتون راه اندازی کنید و وابستگی ها را نصب کنید:
python3 -m venv env_name
source env_name/bin/activate
pip3 install -r requirements.txt
  1. مهاجرت ها را اجرا کنید و فایل های استاتیک را جمع آوری کنید:
python manage.py migrate
python manage.py collectstatic

3. راه اندازی وب سرورها

پس از پیکربندی VPS خود، این مراحل را برای راه اندازی وب و سرور برنامه دنبال کنید:

  1. یک فایل سرویس برای سرور برنامه Gunicorn ایجاد کنید:
sudo nano /etc/systemd/system/gunicorn.service
  1. پیکربندی زیر را اضافه کنید. مطمئن شوید که به جای نام کاربری واقعی و مسیر دایرکتوری پروژه خود را وارد کنید نام کاربری شما و /شما/پروژه/دایرکتوری.
[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=your-username
Group=www-data
WorkingDirectory=/your/project/directory
ExecStart=/your/project/directory/env_name/bin/gunicorn --access-logfile - --workers 3 --bind unix:/your/project/directory.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target
  1. Gunicorn را راه اندازی و فعال کنید:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
  1. یک فایل پیکربندی برای وب سرور NGINX خود ایجاد کنید:
sudo nano /etc/nginx/sites-available/myproject
  1. پیکربندی زیر را اضافه کنید. به یاد داشته باشید که جایگزین کنید /شما/پروژه/دایرکتوری با مسیر واقعی:
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location / {
        proxy_pass http://unix:/your/project/directory/project-name.sock;
        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;
    }

    location /static/ {
        alias /your/project/directory/static/;
    }

    location /media/ {
        alias /your/project/directory/media/;
    }
}

4. پیاده سازی متغیرهای محیطی

متغیرهای محیطی به شما امکان می‌دهند که داده‌ها را در کد برنامه‌تان بدون کدگذاری سخت فراخوانی کنید. علاوه بر ساده‌سازی اصلاحات، به شما امکان می‌دهند جزئیات حساسی مانند کلید مخفی API را در مکان دیگری برای بهبود امنیت ذخیره کنید.

از آنجایی که یک متغیر محیطی به نام ایجاد کردیم env_name در مرحله قبل می‌توانیم متغیرها را مستقیماً تنظیم کنیم. اگر آن را تنظیم نکرده اید، دستور زیر را اجرا کنید:

python3 -m env env_name

اکنون، نصب کنید پایتون dotenv بنابراین ما می توانیم متغیرهای محیطی را راحت تر در برنامه بارگذاری کنیم:

pip install python-dotenv

یک فایل به نام ایجاد کنید env برای ذخیره متغیرهای محیطی پروژه خود با استفاده از این دستور:

sudo nano .env

متغیرهای محیط خود را در یک جفت کلید-مقدار وارد کنید، که بستگی دارد روی داده های حساسی که هنگام پاکسازی کد حذف می کنید. به عنوان مثال، ما دو مورد را برای یک کلید مخفی و URL پایگاه داده تنظیم می کنیم:

SECRET_KEY=your_secret_key
DATABASE_URL=postgres://user:password@localhost:5432/dbname

مهم! از آنجایی که شما env فایل حاوی اطلاعات حساس است، هرگز آن را به مخزن Git متعهد نکنید. قرارش بده .gitignore بنابراین Git به طور خودکار آن را حذف می کند.

حالا متغیرها را در پروژه خود وارد کنید تنظیماتpy فایل کد شما ممکن است به شکل زیر باشد:

import os
from dotenv import load_dotenv

# Load environment variables from .env file
load_dotenv()

# Access environment variables 
SECRET_KEY = os.getenv('SECRET_KEY', 'default_secret_key') 
DATABASE_URL = os.getenv('DATABASE_URL')

5. ایمن کردن برنامه جنگو

پس از استقرار برنامه خود، بیایید از آن در برابر مجرمان سایبری محافظت کنیم. روش های امنیتی مختلفی وجود دارد، اما اساسی ترین آنها صدور گواهی SSL و فعال کردن HTTP است. برای انجام این کار، دستورات زیر را اجرا کنید:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

6. نظارت و عیب یابی پس از استقرار

پس از استقرار، نظارت و عیب یابی برنامه جنگو برای اطمینان از اجرای صحیح آن بسیار مهم است. در اینجا چندین کار مهم وجود دارد که باید در نظر بگیرید.

پیشنهاد می‌کنیم بخوانید:  7 افزونه برتر دسترسی وردپرس که هر وب سایتی باید در سال 1402 از آن استفاده کند

ورود به سیستم را فعال کنید

گزارش‌ها جزئیاتی را در مورد تمام رویدادهایی که در محیط میزبانی شما رخ داده است، از جمله خطاها، رفتارهای مشکوک یا مشکلات عملکرد به شما می‌دهند.

در حالی که می‌توانید از ابزارهای شخص ثالث استفاده کنید، جنگو یک چارچوب داخلی دارد که به شما امکان می‌دهد به راحتی لاگ را فعال کنید. برای استفاده از آن، پروژه خود را باز کنید تنظیماتpy فایل و تنظیمات خود را به آن اضافه کنید قطع درختان فرهنگ لغت.

می‌توانید تنظیمات مختلفی را تغییر دهید، از جمله جایی که می‌خواهید پیام گزارش را خروجی بگیرید. بخوانید اسناد ورود به سیستم جنگو برای کسب اطلاعات بیشتر در مورد پیکربندی

ردیابی خطاها و رسیدگی به استثنا

ردیابی خودکار خطا به شما امکان می دهد تا به استثناهای برنامه خود به سرعت پاسخ دهید و از بدتر شدن آنها و تأثیرگذاری بر افراد بیشتر جلوگیری کنید. راه های مختلفی برای فعال کردن آن وجود دارد، اما یکی از روش های رایج در جنگو استفاده از Sentry است.

با اجرای دستور زیر آن را نصب کنید:

pip install sentry-sdk

سپس، پیکربندی آن را به تنظیمات خود اضافه کنید.py فایل کد شما ممکن است به شکل زیر باشد:

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
    dsn="https://your_sentry_dsn_here",
    integrations=[DjangoIntegration()],
)

نظارت بر عملکرد و زمان کار

سرور خود را به طور فعال نظارت کنید تا مشکلات احتمالی عملکرد یا خرابی را شناسایی کنید. اگرچه ارائه دهندگان هاست VPS دوست دارند هاستینگer ارائه a ابزار داخلی برای ردیابی استفاده از سیستمادغام یک ابزار شخص ثالث گزارش را جامع تر می کند.

راه حل های مختلفی برای نظارت بر سرور شما وجود دارد، اما برخی از محبوب ترین آنها عبارتند از یادگار جدید و داگ داده. از آنجایی که مراحل راه اندازی این ابزارها متفاوت است، مستندات آنها را بررسی کنید.

نکته مهم این است که هشدار خودکار را در این ابزارها تنظیم کنید تا زمانی که سرور شما کند می شود یا از کار افتاد، اعلان دریافت می کنید.

نتیجه گیری

استقرار پروژه جنگو از محیط توسعه محلی شما به سرور یک گام مهم در دسترسی آنلاین برنامه شما است. قبل از انجام این کار، اطمینان حاصل کنید host منابع کافی دارد و فریم ورک را نصب کرده است.

سپس، این مراحل را برای استقرار برنامه جنگو در VPS خود دنبال کنید:

  1. برنامه جنگو خود را با تغییر تنظیمات حساس و آپلود آن در مخزن Git خود آماده کنید.
  2. VPS خود را با دانلود سرورهای وب لازم و شبیه سازی مخزن پروژه خود آماده کنید.
  3. وب سرورهای NGINX و Gunicorn را پیکربندی کنید تا بتوانند درخواست های کاربر را بپذیرند.
  4. متغیرهای محیطی را برای جدا کردن اطلاعات حساس از پایگاه کد برنامه خود تنظیم کنید.
  5. یک گواهی SSL صادر کنید و HTTPS را فعال کنید تا برنامه جنگو شما را ایمن کند.
  6. برنامه جنگو خود را با استفاده از ابزارهایی مانند مانیتور و عیب یابی کنید نگهبان و یادگار جدید.

امیدواریم این آموزش به شما کمک کرده باشد تا برنامه جنگو خود را گسترش دهید. اگر به کمک نیاز دارید، از دستیار هوش مصنوعی Kodee ما برای یک راه حل سریع بخواهید یا در زیر برای ما نظر بگذارید.

روش استقرار سؤالات متداول برنامه جنگو

بهترین راه برای مدیریت وابستگی ها در استقرار چیست؟

بهترین راه برای مدیریت وابستگی ها در استقرار جنگو استفاده از آن است pip برای نصب بسته های فهرست شده در a الزامات. txt فایل با استفاده از آن تولید کنید pip freeze > requires.txt، که نسخه های دقیق هر وابستگی را ثبت می کند و از ثبات در بین محیط ها اطمینان می دهد. از محیط های مجازی برای جداسازی وابستگی ها در هر پروژه استفاده کنید.

آیا می توانم از Docker برای استقرار برنامه جنگو خود استفاده کنم؟

بله، Docker برای استقرار برنامه های جنگو با بسته بندی برنامه و وابستگی های آن در یک محیط سازگار ایده آل است. ایجاد یک Dockerfile برای تعریف محیط برنامه و الف docker-compose.yml فایل برای مدیریت چندcontainer تنظیمات، مانند سرور برنامه و پایگاه داده. این رویکرد مقیاس پذیری و حمل و نقل را ساده می کند.

از چه ابزارهای نظارتی می توانم برای برنامه جنگو مستقر شده خود استفاده کنم؟

برای نظارت بر یک برنامه جنگو مستقر شده، ابزارهایی مانند پرومتئوس و گرافانا برای معیارهای زمان واقعی، نگهبان برای ردیابی خطا، و یادگار جدید یا داگ داده برای نظارت کامل بر عملکرد برنامه این ابزارها به ردیابی عملکرد، ثبت خطاها و تجسم استفاده از منابع، بهبود پایداری برنامه و تجربه کاربر کمک می کنند.