Deploy Django With Supervisor: A Beginner's Guide
2023-05-12 08:12:33
如何使用 Supervisor 部署 Django:分步指南
部署 Django 应用到实际服务器上可能是一项艰巨的任务,尤其是对那些不熟悉底层技术和最佳实践的人来说。本指南将分步指导你使用 Supervisor 将 Django 应用部署到 Linux 服务器。
1. 设置 WSGI 配置
WSGI(Web 服务器网关接口)配置是一种将 Web 服务器连接到 Web 应用的标准方法。它通常使用 WSGI 服务器(如 Gunicorn)来实现。
- 在 Django 项目目录中创建新的 Python 文件(如
wsgi.py
)。 - 将以下代码添加到该文件中:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "your_project_name.settings")
application = get_wsgi_application()
用你的 Django 项目名称替换 your_project_name
。
2. 配置 Gunicorn
Gunicorn 是 Django 应用的常用 WSGI 服务器。它以其性能和可靠性而闻名。
- 使用 pip 安装 Gunicorn:
pip install gunicorn
-
在 Django 项目目录中创建新的配置文件(如
gunicorn.conf
)。 -
将以下代码添加到该文件中:
[uwsgi]
chdir = /path/to/your/project/directory
module = wsgi:application
workers = 3
将 /path/to/your/project/directory
替换为你的 Django 项目目录的路径,将 wsgi
替换为你的 WSGI 模块的名称(如 wsgi.py
)。
3. 安装和配置 Supervisor
Supervisor 是一个进程控制系统,允许你管理和监控服务器上的进程。
- 安装 Supervisor:
sudo apt install supervisor
-
配置 Supervisor:
-
创建一个新的配置文件(如
/etc/supervisor/conf.d/your_project_name.conf
)并添加以下内容:
[program:your_project_name]
command=gunicorn -c /path/to/your/project/directory/gunicorn.conf wsgi:application
directory=/path/to/your/project/directory
autostart=true
autorestart=true
redirect_stderr=true
将 /path/to/your/project/directory
替换为你的 Django 项目目录的路径,将 your_project_name
替换为你的 Django 项目的名称。
- 重新加载 Supervisor 配置:
sudo supervisorctl reread
- 启动 Supervisor:
sudo supervisorctl start
4. 配置 Celery
Celery 是一个分布式任务队列,允许你在后台异步运行任务。它通常用于处理后台任务,如发送电子邮件或生成报告。
- 使用 pip 安装 Celery:
pip install celery
-
在 Django 项目目录中创建新的 Celery 配置文件(如
celeryconfig.py
)。 -
将以下代码添加到该文件中:
from __future__ import absolute_import
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project_name.settings')
app = Celery('your_project_name')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
用你的 Django 项目名称替换 your_project_name
。
-
在 Django 项目目录中创建新的文件(如
tasks.py
)并在其中定义你的 Celery 任务。 -
运行以下命令启动 Celery 工作器:
celery worker -A your_project_name.celeryconfig
5. 设置 Cron 作业
Cron 作业是计划在特定时间间隔运行的任务。它们通常用于生成报告或清理旧数据等任务。
- 打开 Crontab 编辑器:
crontab -e
- 将以下行添加到该文件中:
* * * * * /path/to/your/project/directory/manage.py runcrons
将 /path/to/your/project/directory
替换为你的 Django 项目目录的路径。
- 保存并关闭文件。
结论
通过遵循本指南中的步骤,你将能够使用 Supervisor 将你的 Django 应用部署到 Linux 服务器上。这将为你提供一个强大且可靠的部署配置,可以处理后台任务和计划作业。
常见问题解答
-
什么是 Supervisor?
Supervisor 是一个进程控制系统,用于管理和监控服务器上的进程。 -
什么是 WSGI?
WSGI(Web 服务器网关接口)配置是将 Web 服务器连接到 Web 应用的标准方法。 -
什么是 Celery?
Celery 是一个分布式任务队列,用于在后台异步运行任务。 -
什么是 Cron 作业?
Cron 作业是计划在特定时间间隔运行的任务。 -
如何使用 Supervisor 部署 Django 应用?
请参考本指南中的分步说明以获取详细的部署说明。