云服务器部署Django项目全攻略:从零到上线
在当今数字化时代,部署Django项目到云服务器已成为开发者必备技能。本文将详细介绍如何在主流云服务器上部署Django应用,包含环境配置、安全设置和性能优化等关键环节。
一、准备工作
1.1 选择合适的云服务商
阿里云、腾讯云、AWS等主流云平台都提供完善的云服务器产品。建议选择:
- CPU:至少2核
- 内存:4GB以上
- 操作系统:Ubuntu 20.04 LTS
- 带宽:按预估流量选择
1.2 基础环境配置
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装基本工具
sudo apt install -y git curl wget
二、部署环境搭建
2.1 Python环境配置
推荐使用pyenv管理多版本Python:
# 安装依赖
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
# 安装pyenv
curl https://pyenv.run | bash
2.2 数据库安装
MySQL/PostgreSQL安装示例:
# PostgreSQL安装
sudo apt install -y postgresql postgresql-contrib
sudo -u postgres psql -c "CREATE DATABASE myproject;"
三、Django项目部署
3.1 项目文件传输
推荐使用rsync同步代码:
rsync -avz --exclude='.git/' --exclude='__pycache__/' ./ user@server_ip:/path/to/project
3.2 虚拟环境配置
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
3.3 Gunicorn配置
创建/etc/systemd/system/gunicorn.service:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/project
ExecStart=/path/to/venv/bin/gunicorn --workers 3 --bind unix:/tmp/gunicorn.sock project.wsgi:application
[Install]
WantedBy=multi-user.target
四、Nginx配置与HTTPS
4.1 Nginx反向代理
server {
listen 80;
server_name yourdomain.com;
location / {
include proxy_params;
proxy_pass http://unix:/tmp/gunicorn.sock;
}
}
4.2 SSL证书配置
使用Let's Encrypt免费证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
五、安全与监控
5.1 基础安全设置
- 禁用SSH密码登录
- 配置UFW防火墙
- 定期更新系统补丁
5.2 性能监控
推荐工具:
- Prometheus + Grafana
- New Relic
- Datadog
总结
通过以上步骤,您已经完成了Django项目在云服务器上的完整部署。实际部署中可能会遇到环境差异问题,建议:
- 做好部署文档记录
- 使用Docker简化环境配置
- 建立CI/CD自动化流程
