2026[Python] Centos环境部署django项目的全过程(永久复用)

在2026年,将Django项目部署到CentOS服务器,最稳健且可复用的方案是采用“Python虚拟环境 + Gunicorn + Systemd + Nginx”的经典架构。这套组合拳能确保你的应用在生产环境中稳定、安全、高效地运行。

以下是完整的全过程指南。

📦 第一步:服务器环境准备

首先,通过SSH连接到你的CentOS服务器,并更新系统软件包。

sudo yum update -y

2026[Python] Centos环境部署django项目的全过程(永久复用)

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项目的全过程(永久复用)

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项目部署。