Linux云服务器部署Django全流程指南
作为Python开发者最青睐的Web框架之一,Django在云服务器上的部署是每个全栈工程师的必备技能。本文将详细介绍从零开始在生产环境部署Django应用的完整流程,涵盖主流Linux发行版的差异处理,并提供多个实用技巧。
一、环境准备
在开始安装前,确保已完成以下准备:
- 云服务器配置:推荐至少1核2G配置,Ubuntu 20.04/CentOS 7+系统
- SSH连接工具:如Xshell或MobaXterm
- 域名解析:提前将域名A记录指向服务器IP
执行系统更新:
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian sudo yum update -y # CentOS/RHEL
二、Python环境配置
1. 安装Python 3.8+
不同系统的安装方式:
Ubuntu/Debian:
sudo apt install python3 python3-pip python3-venv -y
CentOS/RHEL:
sudo yum install python3 python3-pip -y sudo alternatives --set python /usr/bin/python3
2. 创建虚拟环境
mkdir ~/django_project cd ~/django_project python3 -m venv venv source venv/bin/activate
三、Django核心安装
在激活的虚拟环境中执行:
pip install django gunicorn
验证安装:
django-admin --version gunicorn --version
创建项目:
django-admin startproject myproject cd myproject
四、数据库配置(MySQL示例)
1. 安装MySQL
sudo apt install mysql-server -y # Ubuntu sudo yum install mysql-community-server -y # CentOS
2. 配置数据库
sudo mysql_secure_installation mysql -u root -p CREATE DATABASE django_db; CREATE USER 'django_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON django_db.* TO 'django_user'@'localhost'; FLUSH PRIVILEGES;
3. Django数据库配置
修改settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'django_user',
'PASSWORD': 'your_password',
'HOST': 'localhost',
'PORT': '3306',
}
}
安装MySQL客户端:
pip install mysqlclient
五、生产环境部署
1. 使用Gunicorn
gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
2. 配置Nginx反向代理
安装Nginx:
sudo apt install nginx -y # Ubuntu sudo yum install nginx -y # CentOS
配置站点(/etc/nginx/sites-available/myproject):
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /static/ {
alias /path/to/your/static/files/;
}
}
3. 配置静态文件
在settings.py中添加:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATIC_URL = '/static/'
收集静态文件:
python manage.py collectstatic
六、安全加固
- 设置DEBUG=False
- 配置ALLOWED_HOSTS
- 安装安全中间件:pip install django-security
- 设置CSRF_COOKIE_SECURE=True
- 配置HTTPS(Certbot免费证书)
七、自动化部署方案
推荐使用以下方式实现自动化部署:
- 编写Shell脚本
- 使用Fabric库
- 配置CI/CD(GitHub Actions/GitLab CI)
- Docker容器化部署
总结
通过以上步骤,您已成功在Linux云服务器上部署了Django应用。实际生产中还需考虑:
- 日志监控(ELK方案)
- 性能优化(缓存、CDN)
- 自动备份策略
- 负载均衡配置
建议定期检查Django安全公告,并及时更新版本以确保系统安全。
常见问题解决
Q:502 Bad Gateway错误?
A:检查Gunicorn是否正常运行,Nginx配置是否正确
Q:静态文件加载失败?
A:确认STATIC_ROOT设置正确,Nginx有读取权限
Q:数据库连接失败?
A:检查数据库服务状态,用户权限和防火墙设置
