Django 项目 CentOS8 虚拟机部署(Gunicorn+Nginx)+ 需求分析
·
一、项目背景与需求分析
1.1 项目介绍
本项目是基于 Django 开发的个人展示网站,包含首页、个人介绍、静态页面展示、后台管理等功能,可作为课程作业、个人作品集展示使用。
1.2 功能需求
前端页面展示(首页、关于我)
静态资源加载(CSS、JS、图片)
Django Admin 后台内容管理
支持生产环境部署,可公网 / 局域网访问
1.3 技术栈
后端:Django
数据库:SQLite3
部署:Gunicorn + Nginx
系统:CentOS8 虚拟机
二、环境准备
VM 虚拟机 / VMware
安装 CentOS8 操作系统
确保虚拟机可以联网
Django 项目已上传 Gitee(本文使用你自己的 personalwebsite)
三、CentOS8 部署 Django + Gunicorn + Nginx 详细步骤
3.1 安装系统依赖
dnf update -y
dnf install python3-pip python3-devel nginx gcc git -y

3.2 拉取项目代码
cd /opt
git clone https://gitee.com/kxhuan/personalwebsite.git
cd personalwebsite

3.3 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
pip install django gunicorn

3.4 修改 Django 配置(生产必备)
编辑 settings.py
vi personal_website/settings.py
按 / 输入 DEBUG 回车
把 True 改成 False
把 ALLOWED_HOSTS 改成 ['*']
最后一行添加:
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')
按 Esc → 输入 :wq 保存
3.5 收集静态文件
python manage.py collectstatic --noinput
3.6 测试 Gunicorn 启动
gunicorn personal_website.wsgi:application --bind 0.0.0.0:8000

出现启动成功即正常,Ctrl+C 停止。
四、Nginx 反向代理配置
4.1安装Nginx 创建 Nginx 配置文件
dnf install nginx -y --skip-broken

先创建 Nginx 配置目录
mkdir -p /etc/nginx/conf.d
vi /etc/nginx/conf.d/personalwebsite.conf
写入内容
server {
listen 80;
server_name localhost;
# 静态文件交由Nginx直接处理
location /static/ {
alias /opt/personalwebsite/static_files/;
}
# 动态请求转发给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;
}
}
4.2 检查配置并重启 Nginx
nginx -t
systemctl restart nginx
systemctl enable nginx
4.3 防火墙放行 HTTP
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

五、后台启动 Gunicorn
gunicorn personal_website.wsgi:application --bind 127.0.0.1:8000 --daemon
六、访问网站
在虚拟机浏览器输入:
http://localhost

网站部署完成!
七、部署架构说明
Gunicorn:WSGI 应用服务器,负责运行 Django,替代不安全的 runserver
Nginx:反向代理 + 静态文件处理,提高访问速度与并发能力
CentOS8:稳定服务器操作系统
静态文件分离:Nginx 直接处理静态资源,减轻 Django 压力
八、常见问题
页面无法访问:检查防火墙、Nginx 是否启动、Gunicorn 是否运行
样式丢失:未执行 collectstatic 或 Nginx 静态路径配置错误
权限报错:给 static_files 开权限或关闭 SELinux
更多推荐






所有评论(0)