京东云服务器部署Django项目完整指南
结论: 在京东云服务器上部署Django项目需要完成环境配置、代码部署、数据库设置、静态文件处理和Web服务器对接等步骤,最终通过Nginx+Gunicorn实现高效稳定的生产环境部署。
1. 准备工作
- 购买京东云服务器:选择适合的配置(推荐至少2核4G),安装Ubuntu/CentOS等Linux系统。
- 配置安全组:开放80(HTTP)、443(HTTPS)、22(SSH)和Django运行端口(如8000)。
- 域名与SSL证书(可选):如需域名访问,提前解析并申请SSL证书(京东云提供免费证书)。
2. 环境配置
- 更新系统:
sudo apt update && sudo apt upgrade -y # Ubuntu sudo yum update -y # CentOS
- 安装Python和pip:
sudo apt install python3 python3-pip python3-venv -y
- 安装依赖库:
sudo apt install build-essential libssl-dev libffi-dev python3-dev
3. 部署Django项目
- 上传代码:通过Git或SFTP将项目上传到服务器(如
/var/www/myproject
)。 - 创建虚拟环境:
python3 -m venv venv source venv/bin/activate
- 安装依赖:
pip install -r requirements.txt
- 配置数据库:
- 使用MySQL/PostgreSQL时需安装驱动(如
pip install mysqlclient
)。 - 修改
settings.py
中的数据库配置:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'user', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '3306', } }
- 使用MySQL/PostgreSQL时需安装驱动(如
4. 静态文件与媒体文件处理
- 配置
settings.py
:STATIC_URL = '/static/' STATIC_ROOT = '/var/www/myproject/static/' # 收集静态文件路径 MEDIA_URL = '/media/' MEDIA_ROOT = '/var/www/myproject/media/' # 用户上传文件路径
- 收集静态文件:
python manage.py collectstatic
5. 使用Gunicorn运行Django
- 安装Gunicorn:
pip install gunicorn
- 启动Gunicorn:
gunicorn --workers 3 --bind 0.0.0.0:8000 myproject.wsgi:application
-
创建Systemd服务(推荐):
sudo nano /etc/systemd/system/gunicorn.service
写入以下内容:
[Unit] Description=Gunicorn Django Server After=network.target [Service] User=root Group=www-data WorkingDirectory=/var/www/myproject ExecStart=/var/www/myproject/venv/bin/gunicorn --workers 3 --bind unix:/var/www/myproject/myproject.sock myproject.wsgi:application [Install] WantedBy=multi-user.target
启动服务:
sudo systemctl start gunicorn sudo systemctl enable gunicorn
6. 配置Nginx反向X_X
- 安装Nginx:
sudo apt install nginx -y
-
配置站点:
sudo nano /etc/nginx/sites-available/myproject
写入以下内容(替换域名和路径):
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://unix:/var/www/myproject/myproject.sock; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /static/ { alias /var/www/myproject/static/; } location /media/ { alias /var/www/myproject/media/; } }
- 启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled sudo nginx -t # 测试配置 sudo systemctl restart nginx
7. 其他优化与安全
- 防火墙配置:
sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable
- HTTPS配置:使用京东云SSL证书或Let's Encrypt(推荐Certbot工具)。
- 定期备份:通过脚本或京东云快照功能备份数据库和代码。
核心要点:
- 关键步骤: 虚拟环境隔离 + Gunicorn进程管理 + Nginx反向X_X。
- 性能优化: 静态文件由Nginx直接处理,减轻Django负担,Gunicorn多Worker提升并发能力。
完成以上步骤后,访问服务器IP或域名即可看到部署的Django项目!