2026[Python] Centos环境部署django项目的全过程(永久复用)
在2026年,将Django项目部署到CentOS服务器,最稳健且可复用的方案是采用“Python虚拟环境 + Gunicorn + Systemd + Nginx”的经典架构。这套组合拳能确保你的应用在生产环境中稳定、安全、高效地运行。
以下是完整的全过程指南。
📦 第一步:服务器环境准备
首先,通过SSH连接到你的CentOS服务器,并更新系统软件包。
sudo yum update -y
![2026[Python] Centos环境部署django项目的全过程(永久复用)](http://www.hnririhong.cn/zb_users/plugin/iddahe_com_gallery/redirect.php?url=http%3A%2F%2Fhkw.app%2Fzb_users%2Fupload%2F2026%2F04%2F202604241777001812311294.jpg%0D)
1. 安装基础依赖和开发工具
这些工具是编译Python包和管理系统所必需的。
sudo yum groupinstall -y "Development Tools"
sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make gdbm-devel libffi-devel wget vim unzip nginx
2. 安装 Python 3
CentOS 7 默认携带的Python版本较老,我们需要安装一个较新的版本(如3.9)。
下载Python源码包
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz
解压并进入目录
tar -xvf Python-3.9.5.tar.xz
cd Python-3.9.5
编译并安装到指定目录
./configure --prefix=/usr/local/python3
make && sudo make install
创建软链接,方便全局调用
sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
安装完成后,可以通过 python3 -V 和 pip3 -V 验证是否成功。
🚀 第二步:部署Django项目
![2026[Python] Centos环境部署django项目的全过程(永久复用)](http://www.hnririhong.cn/zb_users/plugin/iddahe_com_gallery/redirect.php?url=http%3A%2F%2Fhkw.app%2Fzb_users%2Fupload%2F2026%2F04%2F202604241777001819520421.webp%0D)
1. 上传项目并配置虚拟环境
将你的Django项目代码上传到服务器(例如到 /opt/myproject 目录),然后创建一个独立的Python虚拟环境来隔离项目依赖。
进入项目目录
cd /opt/myproject
创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate
在项目虚拟环境中安装依赖
pip install -r requirements.txt
安装生产环境必需的WSGI服务器
pip install gunicorn
2. 配置生产环境 settings.py
这是至关重要的一步。为了安全,必须修改Django的默认设置。
* 关闭调试模式:将 DEBUG 设置为 False。
* 配置允许的主机:在 ALLOWED_HOSTS 中添加你的服务器IP或域名,例如 ['your_domain.com', '123.123.123.123']。
* 配置静态文件:确保 STATIC_ROOT 已设置,例如 STATIC_ROOT = BASE_DIR / "staticfiles"。
3. 收集静态文件并迁移数据库
在项目根目录下,执行以下命令:
确保虚拟环境处于激活状态
source venv/bin/activate
收集所有静态文件到 STATIC_ROOT 目录
python manage.py collectstatic --noinput
执行数据库迁移
python manage.py migrate
⚙️ 第三步:配置系统服务与反向代理
1. 创建 Systemd 服务文件
为了让Gunicorn在后台运行,并在服务器重启后自动启动,我们需要创建一个Systemd服务。
创建文件:sudo vim /etc/systemd/system/myproject.service
并填入以下内容(请根据你的项目路径和用户名修改):
[Unit]
Description=Gunicorn daemon for Django Project
After=network.target
[Service]
替换为你的实际用户和用户组
User=root
Group=root
替换为你的项目路径
WorkingDirectory=/opt/myproject
指定虚拟环境中的Python和Gunicorn路径
ExecStart=/opt/myproject/venv/bin/python /opt/myproject/venv/bin/gunicorn \
--workers 3 \
--bind 0.0.0.0:8000 \
myproject.wsgi:application
Restart=always
[Install]
WantedBy=multi-user.target
保存后,启动并启用该服务:
sudo systemctl daemon-reload
sudo systemctl start myproject
sudo systemctl enable myproject
查看服务状态,确保是 active (running)
sudo systemctl status myproject
2. 配置 Nginx 反向代理
Nginx将作为前端服务器,处理静态文件请求,并将动态请求转发给Gunicorn。
创建配置文件:sudo vim /etc/nginx/conf.d/myproject.conf
并填入以下内容:
server {
listen 80;
server_name your_domain.com; # 替换为你的域名或服务器IP
# 静态文件由Nginx直接处理,提升性能
location /static/ {
alias /opt/myproject/staticfiles/;
}
# 动态请求转发给Gunicorn
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host host;
proxy_set_header X-Real-IP remote_addr;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto scheme;
}
}
保存后,测试配置并重启Nginx:
sudo nginx -t
sudo systemctl restart nginx
现在,通过浏览器访问你的服务器IP或域名,应该就能看到你的Django应用了。
🛠️ 第四步:监控与维护
一个可复用的部署方案离不开良好的监控和维护。
日志管理
* 查看应用日志:使用 journalctl 命令可以实时查看Gunicorn服务的日志。
sudo journalctl -u myproject -f
* 配置日志轮转:为防止日志文件无限增长,可以配置 logrotate。
备份策略
定期备份你的项目代码和数据库是必须的。
* 项目备份:tar -zcvf /backups/project_$(date +%F).tar.gz /opt/myproject
* 数据库备份:根据你的数据库类型(如MySQL/PostgreSQL)使用相应的备份命令。
通过以上步骤,你就完成了一个生产级别的、可永久复用的Django项目部署。
