手把手教你如何在云服务器上部署Django项目
在数字化时代,将Django项目部署到云服务器已成为开发者必备技能。本文将用最通俗易懂的方式,带你从零开始完成整个部署流程,包括环境配置、项目上传、数据库设置等关键步骤。
一、云服务器准备阶段
首先需要选择适合的云服务商(如阿里云、腾讯云等),建议选择Ubuntu 20.04 LTS系统:
- 购买云服务器后,通过SSH连接服务器
- 更新系统软件包:
sudo apt update && sudo apt upgrade -y - 安装必要工具:
sudo apt install -y python3-pip python3-dev libpq-dev nginx
💡 专业建议:使用ufw配置防火墙规则,开放必要端口(22/80/443)
二、Python环境配置
建议使用虚拟环境避免依赖冲突:
sudo pip3 install virtualenv
mkdir ~/django_project
cd ~/django_project
virtualenv venv
source venv/bin/activate
安装Django和其他依赖:
pip install django gunicorn psycopg2-binary
三、项目上传与配置
推荐两种项目上传方式:
| 方式 | 适用场景 |
|---|---|
| Git克隆 | 项目已在版本控制中 |
| SFTP上传 | 本地开发环境直接迁移 |
关键配置步骤:
- 修改settings.py中的ALLOWED_HOSTS
- 配置数据库连接(推荐PostgreSQL)
- 执行
python manage.py collectstatic
四、Gunicorn+Nginx配置
创建Gunicorn服务文件/etc/systemd/system/gunicorn.service:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/django_project
ExecStart=/home/ubuntu/django_project/venv/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/home/ubuntu/django_project/django.sock \
project_name.wsgi:application
[Install]
WantedBy=multi-user.target
Nginx配置示例:
server {
listen 80;
server_name your_domain.com;
location /static/ {
root /home/ubuntu/django_project;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/ubuntu/django_project/django.sock;
}
}
⚠️ 常见问题:遇到502错误时,检查socket文件权限和Nginx用户组配置
五、HTTPS安全配置(可选但推荐)
使用Let's Encrypt免费证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com
六、运维监控建议
- 配置日志轮转(logrotate)
- 设置自动化备份策略
- 使用Supervisor管理进程
通过以上步骤,你的Django项目已经成功部署到云服务器。记住定期更新依赖包和安全补丁,如需更复杂的部署架构,可以考虑Docker容器化方案。
常见问题解答
Q:静态文件加载失败怎么办?
A:检查Nginx配置中的static路径,确保collectstatic已执行
Q:如何提高并发性能?
A:增加Gunicorn worker数量(建议2-4倍CPU核心数),启用Nginx缓存
