我们需要在生产环境中使用runserver命令来启动我们的项目吗?如果是,那么如何做到这一点,如果没有,那么我们的项目服务器如何启动?
目前在生产环境中启动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';
}