新手如何在云服务器上从零部署Python Django网站应用?

部署一个 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 » 新手如何在云服务器上从零部署Python Django网站应用?