Become a sponsor

本章概要
从服务器准备到应用上线的完整部署操作清单,适用于生产环境首次部署和后续版本更新。
本章提供从服务器准备到应用上线的完整部署操作清单,适用于生产环境首次部署和后续版本更新。
timedatectl set-timezone Asia/ShanghaiPython 环境:
apt install python3-pip 或 yum install python3-pippython3 -m venv /opt/venvsource /opt/venv/bin/activatepip install -r requirements.txt数据库:
CREATE DATABASE djangoadmin.django.elevue DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;.env 中的数据库配置(DATABASE_ENGINE、DATABASE_NAME、DATABASE_HOST、DATABASE_PORT、DATABASE_USER、DATABASE_PASSWORD)python manage.py migrateRedis:
.env 中的 Redis 配置(REDIS_HOST、REDIS_PORT、REDIS_PASSWORD、REDIS_DB)redis-cli pingNode.js(前端构建):
npm install -g pnpmcd ui && pnpm installpnpm build后端:
.env 文件(数据库、Redis、密钥等)config/env.py 中的环境变量(或通过 .env 覆盖)python manage.py runserver 0.0.0.0:8000supervisorctl start djangoadmin前端:
ui/dist/ 目录)server {
listen 80;
server_name your-domain.com;
# 前端静态文件
root /opt/project/ui/dist;
index index.html;
# 前端路由
location / {
try_files $uri $uri/ /index.html;
}
# 后端 API 反向代理
location /api/ {
proxy_pass http://127.0.0.1:8000;
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 /uploads/ {
alias /opt/project/public/uploads/;
expires 30d;
}
# 静态文件
location /static/ {
alias /opt/project/public/static/;
expires 30d;
}
}nginx -tnginx -s reloadsupervisorctl statusgit pull origin mainpip install -r requirements.txtpython manage.py makemigrations && python manage.py migratesupervisorctl restart djangoadmingit pull origin mainpnpm installpnpm buildui/dist/ 目录mysqldump -uroot -p djangoadmin.django.elevue > backup.sqlpython manage.py makemigrations && python manage.py migrate.env 文件docker-compose builddocker-compose up -ddocker-compose psdocker-compose logs -fdocker-compose exec app python manage.py migrateDEBUG=False(application/settings.py)DJANGO_DEMO=False(生产环境)*)# 回滚代码
git checkout <上一个稳定版本tag>
# 回滚数据库迁移
python manage.py migrate <app_name> <migration_name>
# 重启服务
supervisorctl restart djangoadmin# 替换为上一版本的构建产物
cp -r /opt/backup/dist /opt/project/ui/dist# 从备份恢复
mysql -uroot -p djangoadmin.django.elevue < backup.sql部署 Checklist 覆盖了从服务器准备到应用上线的完整流程。首次部署建议按顺序逐项检查,版本更新时使用更新 Checklist 快速操作。生产环境务必做好备份和监控。