您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 怎么把 Django 项目部署到服务器
## 前言
将 Django 项目部署到生产环境是开发流程中的重要环节。本文将以 Nginx + Gunicorn + Supervisor 的组合为例,详细介绍从本地开发环境到云服务器的完整部署流程,适用于 Ubuntu/Debian 系统。
---
## 一、准备工作
### 1.1 服务器环境要求
- Linux 服务器(推荐 Ubuntu 20.04+)
- Python 3.8+
- 已安装 pip 和 virtualenv
- 开放 80/443(HTTP/HTTPS)和 22(SSH)端口
### 1.2 本地项目准备
```bash
# 导出依赖包
pip freeze > requirements.txt
# 确认关键配置
DEBUG = False
ALLOWED_HOSTS = ['yourdomain.com', '服务器IP']
ssh root@your_server_ip
adduser deploy
usermod -aG sudo deploy
su - deploy
sudo apt update
sudo apt install -y python3-pip python3-venv nginx supervisor
推荐使用 Git 或 SCP:
scp -r /local/path deploy@server_ip:/home/deploy/project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
MySQL 示例:
sudo apt install -y mysql-server
sudo mysql_secure_installation
# 创建数据库
mysql -u root -p
CREATE DATABASE dbname CHARACTER SET utf8mb4;
修改 Django 配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}
python manage.py collectstatic
pip install gunicorn
gunicorn --bind 0.0.0.0:8000 project.wsgi:application
/home/deploy/project/gunicorn_conf.py
:
bind = "127.0.0.1:8000"
workers = 3
user = "deploy"
timeout = 120
/etc/supervisor/conf.d/django.conf
:
[program:django]
command=/home/deploy/venv/bin/gunicorn -c /home/deploy/project/gunicorn_conf.py project.wsgi:application
directory=/home/deploy/project
user=deploy
autostart=true
autorestart=true
stderr_logfile=/var/log/django.err.log
stdout_logfile=/var/log/django.out.log
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start django
/etc/nginx/sites-available/django
:
server {
listen 80;
server_name yourdomain.com;
location /static/ {
alias /home/deploy/project/staticfiles/;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
sudo ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled
sudo nginx -t # 测试配置
sudo systemctl restart nginx
使用 Let’s Encrypt 免费证书:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
检查服务状态:
sudo supervisorctl status
sudo systemctl status nginx
测试错误页面:
/var/log/django.err.log
自动化部署建议:
STATIC_ROOT
配置collectstatic
ps aux | grep gunicorn
通过以上步骤,你的 Django 项目应该已经成功部署。建议定期: - 更新系统安全补丁 - 备份数据库 - 监控服务器资源使用情况
如需更高级的部署方案,可以考虑 Docker 或 Kubernetes 容器化部署。 “`
(全文约1350字)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。