Skip to content

部署运维

配置

  • 生产环境建议通过环境变量注入 DB_* / REDIS_* / JWT_SECRET_KEY 等敏感项
  • 确保 DJANGO_ALLOWED_HOSTS 已配置(逗号分隔)
  • 生产环境建议固定:DJANGO_SETTINGS_MODULE=config.settings.prod

生产部署

依赖服务

  • MySQL(必需)
  • Redis(7.x,必需)
  • MinIO(可选,文件存储)

传统部署(Gunicorn + Nginx)

bash
# 创建并激活虚拟环境
python -m venv .venv
# 安装依赖(含 gunicorn)
pip install -r requirements.txt
pip install gunicorn
# 收集静态资源
python manage.py collectstatic --noinput
bash
export DJANGO_SETTINGS_MODULE=config.settings.prod
export DJANGO_ALLOWED_HOSTS=your.domain.com
gunicorn config.wsgi:application -b 0.0.0.0:8000

systemd 示例

ini
[Unit]
Description=youlai-django
After=network.target

[Service]
WorkingDirectory=/opt/youlai-django
Environment=DJANGO_SETTINGS_MODULE=config.settings.prod
Environment=DJANGO_ALLOWED_HOSTS=your.domain.com
ExecStart=/opt/youlai-django/.venv/bin/gunicorn config.wsgi:application -b 0.0.0.0:8000
Restart=always

[Install]
WantedBy=multi-user.target

Nginx 反向代理示例:

nginx
server {
    listen 80;
    server_name your.domain.com;
    client_max_body_size 20m;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Docker / Compose

仓库自带 docker-compose.yml(MySQL/Redis/MinIO + Web),在 youlai-django 目录执行:

bash
docker compose up -d --build

默认端口:

  • Web:8000
  • MySQL:3306
  • Redis:6379
  • MinIO:9000 / 9001

日志与监控问题排查

  • 启动失败优先检查 MySQL/Redis 连通性与 .env 配置
  • 接口 404:确认是否带上 /api/v1 前缀(见 config/urls.py
  • Swagger 访问不到:确认端口/反代路径是否正确
  • 静态资源异常:执行 collectstatic 并确保部署目录可写
  • Swagger:http://localhost:8000/api/docs/swagger/

基于 MIT 许可发布