Нужно ли нам использовать команду runserver в production для запуска нашего проекта django?

Нужно ли нам использовать команду runserver в production для запуска нашего проекта? Если да, то как это сделать, а если нет, то как запускается сервер проекта?

На данный момент наиболее распространенным способом запуска Django в продакшене является использование UWSGI (https://uwsgi-docs.readthedocs.io/en/latest/) (или асинхронной версии ASGI). Вам нужен такой конфиг:

[uwsgi]
socket = 0.0.0.0:3300
chdir = /app/src
pythonpath=/app/src
wsgi-file = /app/src/django_app/wsgi.py
env = DJANGO_SETTINGS_MODULE=django_app.settings
module = django.core.wsgi:get_wsgi_application()
max-requests = 1000
harakiri = 60
buffer-size = 65535
no-orphans = true
touch-reload = /var/run/uwsgi-touch-reload
uid = www-data
gid = www-data
master = 1
workers = 8

И затем вы начинаете свое приложение с:

#!/usr/bin/env bash
uwsgi --ini /app/uwsgi.ini

Затем ваш HTTP-сервер, например, nginx, посылает запросы приложению uwsgi. Конфигурация Nginx может быть следующей:

upstream django {
    server django:3300;
}

location / {
    include uwsgi_params;
    default_type  text/html;
    uwsgi_pass django;
    uwsgi_param HTTP_X_FORWARDED_PROTOCOL 'https';
}
Вернуться на верх