+ 需求分析)
一、项目背景与需求分析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 -y3.2 拉取项目代码cd /opt git clone https://gitee.com/kxhuan/personalwebsite.git cd personalwebsite3.3 创建虚拟环境python3 -m venv venv source venv/bin/activate pip install django gunicorn3.4 修改 Django 配置生产必备编辑 settings.pyvi 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 --noinput3.6 测试 Gunicorn 启动gunicorn personal_website.wsgi:application --bind 0.0.0.0:8000出现启动成功即正常CtrlC 停止。四、Nginx 反向代理配置4.1安装Nginx 创建 Nginx 配置文件dnf install nginx -y --skip-broken先创建 Nginx 配置目录mkdir -p /etc/nginx/conf.dvi /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 检查配置并重启 Nginxnginx -t systemctl restart nginx systemctl enable nginx4.3 防火墙放行 HTTPfirewall-cmd --add-servicehttp --permanent firewall-cmd --reload五、后台启动 Gunicorngunicorn personal_website.wsgi:application --bind 127.0.0.1:8000 --daemon六、访问网站在虚拟机浏览器输入http://localhost网站部署完成七、部署架构说明GunicornWSGI 应用服务器负责运行 Django替代不安全的 runserverNginx反向代理 静态文件处理提高访问速度与并发能力CentOS8稳定服务器操作系统静态文件分离Nginx 直接处理静态资源减轻 Django 压力八、常见问题页面无法访问检查防火墙、Nginx 是否启动、Gunicorn 是否运行样式丢失未执行 collectstatic 或 Nginx 静态路径配置错误权限报错给 static_files 开权限或关闭 SELinux