home

本站采用Django作为WEB 应用框架,Gunicorn作为 WSGI 服务器,Nginx作为反向代理服务器以及静态文件服务器

1. Django:Web 应用框架

角色:负责处理业务逻辑、数据模型、模板渲染等核心功能

作用:

  • 处理用户请求(如博客文章展示、评论提交、后台管理等)
  • 与数据库交互(如 SQLite、PostgreSQL、MySQL)
  • 渲染 HTML 页面并返回响应

特点:是一个 WSGI 应用,本身不直接处理 HTTP 请求,需要配合 WSGI 服务器(如 Gunicorn)运行

2. Gunicorn:WSGI 服务器

角色:作为 Django 和 Nginx 之间的桥梁,负责运行 Django 应用

作用:

  • 启动多个 Worker 进程 来并行处理 Django 的请求
  • 将 Nginx 转发过来的 HTTP 请求转换为 Django 能理解的 WSGI 格式
  • 将 Django 返回的响应转发给 Nginx

特点:是一个 纯 Python 的 WSGI 服务器,性能稳定,配置简单。不支持静态文件服务(如 CSS、JS、图片),因此需要 Nginx 配合

3. Nginx:反向代理服务器 + 静态文件服务器

角色:作为用户访问的“第一道门”,负责处理外部 HTTP 请求

作用:

  • 反向代理:将用户的动态请求(如 /blog/123/)转发给 Gunicorn,再将 Gunicorn 的响应返回给用户
  • 静态文件服务:直接提供 CSS、JS、图片等静态文件,减轻 Gunicorn 的压力
  • 安全与性能:屏蔽直接暴露 Gunicorn 的风险
  • 支持 HTTPS、压缩、缓存、限流等高级功能

特点:高性能、低内存占用,适合处理高并发连接

用户访问博客的流程(简化版):

  1. 用户在浏览器输入 https://jbzeng.com/
  2. Nginx 接收请求,判断是动态请求(文章页面),转发给 Gunicorn
  3. Gunicorn 将请求交给 Django 处理
  4. Django 查询数据库,渲染模板,生成 HTML 页面
  5. Gunicorn 将 HTML 返回给 Nginx
  6. Nginx 将页面返回给用户浏览器