部署一个 Python Django 网站到云服务器(如阿里云、腾讯云、AWS、DigitalOcean 等)是一个非常实用的技能。下面是一份从零开始的详细指南,适合新手一步步操作。
🌐 一、准备工作
1. 购买云服务器(VPS)
- 推荐选择:阿里云、腾讯云、AWS EC2、DigitalOcean
- 配置建议:
- 操作系统:Ubuntu 20.04 / 22.04 LTS(推荐)
- 内存:至少 1GB(Django 可以运行,生产建议 2GB+)
- 带宽:1Mbps 起步即可测试
记录下你的公网 IP 地址和登录密码/密钥。
🔧 二、连接服务器(SSH)
使用终端(Mac/Linux)或 PuTTY(Windows)连接:
ssh root@你的服务器IP
# 或者如果是 ubuntu 用户
ssh ubuntu@你的服务器IP
首次登录后建议创建普通用户并禁用 root 登录(安全):
adduser deploy # 创建用户
usermod -aG sudo deploy # 添加管理员权限
su - deploy # 切换用户
🐍 三、安装 Python 和必要工具
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 安装 Python3 和 pip
sudo apt install python3 python3-pip python3-venv git -y
3. 验证安装
python3 --version
pip3 --version
📁 四、上传或克隆 Django 项目
方法一:使用 Git 克隆(推荐)
确保你的项目已推送到 GitHub/Gitee:
git clone https://github.com/yourname/your-django-project.git
cd your-django-project
方法二:本地上传(如用 SCP)
scp -r 本地项目路径 deploy@服务器IP:/home/deploy/
⚙️ 五、配置虚拟环境与依赖
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate
# 安装依赖(确保有 requirements.txt)
pip install -r requirements.txt
如果没有 requirements.txt,生成它:
pip freeze > requirements.txt
🛠️ 六、配置 Django 项目(关键步骤)
1. 修改 settings.py
# settings.py
# 允许的主机(必须设置!)
ALLOWED_HOSTS = ['你的服务器IP', '你的域名'] # 如 ['123.123.123.123', 'example.com']
# 静态文件设置(生产环境)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') # 收集静态文件用
# 数据库(推荐使用 PostgreSQL,但 SQLite 也可用于测试)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
✅ 生产环境建议使用 PostgreSQL + Gunicorn + Nginx 组合。
🗃️ 七、数据库迁移与收集静态文件
# 激活虚拟环境
source venv/bin/activate
# 迁移数据库
python manage.py makemigrations
python manage.py migrate
# 创建超级用户(可选)
python manage.py createsuperuser
# 收集静态文件(为 Nginx 提供服务)
python manage.py collectstatic
🚀 八、使用 Gunicorn 启动 Django(不要用 runserver 上线!)
1. 安装 Gunicorn
pip install gunicorn
2. 测试启动
gunicorn --bind 0.0.0.0:8000 项目名.wsgi:application
项目名是
settings.py所在的目录名,如myproject.wsgi
🌐 九、配置 Nginx 反向X_X(让网站可通过 80 端口访问)
1. 安装 Nginx
sudo apt install nginx -y
2. 创建 Nginx 配置文件
sudo nano /etc/nginx/sites-available/myproject
内容如下(替换 your_domain_or_ip):
server {
listen 80;
server_name 你的服务器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 /home/deploy/your-django-project/staticfiles/;
}
}
3. 启用站点
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置是否正确
sudo systemctl restart nginx
🔁 十、使用 Supervisor 管理 Gunicorn 进程(防止崩溃)
1. 安装 Supervisor
sudo apt install supervisor -y
2. 创建配置文件
sudo nano /etc/supervisor/conf.d/myproject.conf
内容:
[program:myproject]
command=/home/deploy/your-django-project/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 myproject.wsgi:application
directory=/home/deploy/your-django-project
user=deploy
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/myproject.log
3. 启动 Supervisor
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start myproject
🔐 十一、(可选)配置 HTTPS(使用 Let’s Encrypt)
1. 安装 Certbot
sudo apt install certbot python3-certbot-nginx -y
2. 获取 SSL 证书
sudo certbot --nginx -d yourdomain.com
之后会自动配置 HTTPS 并重定向 HTTP → HTTPS。
🎉 十二、完成!访问你的网站
打开浏览器,输入:
http://你的服务器IP
或
https://yourdomain.com
✅ 成功!
📝 新手常见问题与建议
| 问题 | 解决方案 |
|---|---|
| 页面 502 Bad Gateway | 检查 Gunicorn 是否运行,端口是否监听 |
| 静态文件 404 | 检查 collectstatic 和 Nginx 的 location /static/ 配置 |
| ALLOWED_HOSTS 错误 | 必须包含服务器 IP 或域名 |
| 权限问题 | 使用 chmod 设置正确权限,避免用 root 运行 |
✅ 总结流程图
购买服务器 → SSH 登录 → 安装 Python/Git → 克隆项目 → 虚拟环境 → 安装依赖
→ 配置 settings → 数据库迁移 → 安装 Gunicorn → 配置 Nginx → Supervisor 管理进程
→ (可选)配置 HTTPS → 访问网站
如果你提供具体的项目结构或遇到错误信息,我可以进一步帮你排查!
祝你部署成功!🚀
云知道CLOUD