在京东云服务器上部署 Django 项目,主要分为以下几个步骤。这里假设你使用的是 Linux 系统(如 CentOS 或 Ubuntu),并已经购买和登录了京东云服务器。
🧱 准备工作
-
购买并登录京东云服务器
- 登录方式:通过 SSH 连接服务器
- 推荐使用密钥登录或用户名+密码方式登录
-
安装 Python 环境
- 安装 Python3、pip、virtualenv(推荐使用虚拟环境)
# Ubuntu/Debian sudo apt update sudo apt install python3 python3-pip python3-venv -y # CentOS sudo yum install python3 python3-pip -y -
上传你的 Django 项目代码
- 可以使用
git clone拉取代码 - 或者用 FTP/SFTP 工具上传本地项目文件
- 可以使用
🔧 部署流程
1. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
2. 安装依赖
进入项目目录:
cd your_project_name/
pip install -r requirements.txt
如果没有 requirements.txt,你需要手动安装 Django 和其他依赖:
pip install django gunicorn
3. 修改 Django 设置(settings.py)
-
允许所有主机访问(测试时)
ALLOWED_HOSTS = ['*'] -
关闭调试模式(生产环境)
DEBUG = False -
设置静态文件路径
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
运行收集静态文件命令:
python manage.py collectstatic --noinput
4. 使用 Gunicorn 启动 Django 服务
安装 Gunicorn:
pip install gunicorn
启动服务:
gunicorn your_project_name.wsgi:application
你可以加一些参数让它后台运行:
gunicorn --bind 0.0.0.0:8000 your_project_name.wsgi:application -w 3 -D
-w表示 worker 数量,一般为 CPU 核心数 + 1;-D表示后台运行
5. 配置 Nginx(可选但推荐)
安装 Nginx
# Ubuntu
sudo apt install nginx -y
# CentOS
sudo yum install nginx -y
创建 Nginx 配置文件
编辑配置文件:
sudo nano /etc/nginx/sites-available/django.conf
写入以下内容:
server {
listen 80;
server_name your_domain_or_ip;
location / {
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;
}
location /static/ {
alias /path/to/your/staticfiles/;
}
}
创建软链接启用站点:
sudo ln -s /etc/nginx/sites-available/django.conf /etc/nginx/sites-enabled/
检查语法并重启 Nginx:
sudo nginx -t
sudo systemctl restart nginx
6. 开放防火墙端口
确保京东云控制台中开放了对应端口(如 80、443),同时服务器也开启防火墙规则。
Ubuntu 上可以使用:
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
CentOS 上使用:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
✅ 验证部署
打开浏览器访问你的服务器 IP 或域名,应该能看到 Django 页面。
🧼 常见问题排查
| 问题 | 解决方案 |
|---|---|
| 页面空白或 500 错误 | 检查 Gunicorn 日志,查看是否有异常:journalctl -u gunicorn 或直接运行 Gunicorn 查看输出 |
| 静态文件不显示 | 检查是否执行 collectstatic,Nginx 配置的路径是否正确 |
| 数据库连接失败 | 检查数据库配置(MySQL/PostgreSQL),确认远程访问权限 |
| 跨域请求被拦截 | 检查 CORS 配置,或者添加中间件处理 |
🚀 进阶建议
- 使用 Supervisor 管理 Gunicorn 进程,防止崩溃退出
- 使用 Let’s Encrypt 添加 HTTPS 支持
- 使用 uwsgi 替代 Gunicorn(性能更好)
- 配合 GitHub Action 或 Jenkins 实现 CI/CD 自动化部署
如果你提供具体的操作系统版本、Django 版本、是否需要 HTTPS 等信息,我可以给出更详细的定制化部署指南。需要我帮你写一个完整的自动化部署脚本吗?
秒懂云