​从 0 到 1,我的冠希博客
2026/7/24 12:28:25 网站建设 项目流程

你好,我是张冠希。我的个人博客 冠希博客 ( - 探索全栈开发、AI 实践与数字生活的极客空间 已经稳定运行了一段时间。这篇文章不是"上线通告",而是想带你看一看:一个自己从零写出来的独立博客,到底由哪些东西构成——技术怎么选的、有哪些"平台装不下"的玩法、踩过哪些坑。如果你也在犹豫要不要搭自己的站,希望这篇能给你一点参考。

一、前言:Hello World

先简单介绍下自己:我开发的时候是抱着玩玩的的心态做一个毕业设计,但是做着做着就想把它做好,我全栈开发,技术方向偏Python 后端 + Vue 前端,平时喜欢鼓捣各种 Web 应用——从实时聊天、弹幕,到接入大模型做 AI 对话,都亲手写过。

一直以来我都只开发,并没有在 CSDN、掘金这类平台发文章。于是今年我下定决心:干脆写一篇我的文章,让各位开发大佬给我这个前端小白提点建议。

现在它已经正式上线,欢迎来逛逛 👉 冠希博客 (gx666.site) - 探索全栈开发、AI 实践与数字生活的极客空间

在这个博客里,你能看到:

  • 不限于技术的原创文章实战笔记
  • 一些"平台装不下"的互动玩法(聊天室、弹幕、AI 问答、数据大屏);
  • 以及我作为一个普通开发者,从买域名到上线踩过的每一个坑

二、建站初衷:为什么需要独立博客

第三方平台的局限性

在 CSDN / 掘金写久了,越来越感受到几个痛点,这里说点具体的:

  • 内容不归自己:平台改版、限流、甚至封号,多年积累说没就没。我有个朋友,一篇爆款突然被判定"疑似营销"下架,申诉无门,几千阅读瞬间归零。
  • 样式不可控:排版、主题、交互都被平台框死。我想在文章里嵌一个实时 demo、加个暗黑模式切换?基本没戏。
  • 没有"家"的感觉:文章像寄人篱下,读者记住的是平台,不是你。
  • 数据黑洞:谁看了、从哪来、停留多久,平台不会告诉你。

独立博客 vs 第三方平台

维度

第三方平台

独立博客

内容归属

平台

自己(可随时导出备份)

样式 / 功能

受限

完全自定义

数据

不透明

全量掌握(访问、行为、热度)

变现 / 友链

受规则约束

自主

成本

免费

域名 + 服务器(约一顿火锅/年)

我的核心诉求

  1. 数据的掌控权:文章、评论、用户数据全在自己服务器上,备份随便做;
  2. 高度自定义:UI、功能、交互想怎么改就怎么改;
  3. 个人数字名片:一个域名,就是我在互联网上的"门牌号"。

域名与命名趣事

域名gx666.site其实挺好记:

  • gx= "冠希"的拼音首字母;
  • 666= 网络用语里"溜/牛"的意思,图个吉利也好玩。

"张冠希"是我的网名,因为喜欢陈冠希老师的帅气,当初随手取的,没想到做博客后反倒成了符号 😄。买域名时顺手查了下,.site后缀便宜又清爽,就定下了。

三、技术架构与选型(核心干货)

博客系统选型

我没有用 Hexo / Halo / Typecho 这类现成程序,而是从零自研了一套全栈系统。说说为什么:

  • Hexo 这类静态博客:生成的是纯静态页,没有后端,做不了实时聊天、AI 流式对话、用户系统;
  • Halo 这类动态博客:功能强但技术栈是 Java(Spring),和我熟悉的 Python 不匹配,二次开发成本高;
  • 自研:我想要的功能(实时聊天、弹幕、AI 对话、热榜聚合)都很个性化,现成程序很难满足,而且自研能彻底掌控每一行代码。

说明:目前代码暂不开源,但我会持续在博客和 CSDN 分享里面的设计思路与踩坑经验。等架构再稳定一点,会考虑开源核心模块。

整体架构

┌─────────────┐ HTTPS ┌──────────────┐ │ 浏览器/Vue │ ─────────────▶ │ Nginx 反代 │ │ (Vite) │ └──────┬───────┘ └─────────────┘ │ uwsgi/asgi ┌──────▼───────┐ │ Daphne(ASGI) │ ← Django 应用 │ Django+DRF │ └───┬──────┬───┘ MySQL│ │Redis ▼ ▼ ┌──────────┐ ┌────────┐ │ MySQL │ │ Redis │ └──────────┘ └────────┘

为什么用ASGI(Daphne)而不是传统 WSGI?因为 AI 问答页面需要流式响应(边生成边返回),这依赖长连接 / 异步能力,ASGI 原生支持,WSGI 做不到。

前端与主题

  • 技术栈:Vue 3.4(Composition API)+ Vite 5.2 + Element Plus + Pinia + Vue Router。
  • UI 设计理念:走新拟态(Neo-Morphism)+ 玻璃拟态风格——圆角、柔和阴影、半透明卡片。比如首页的「实时热榜」卡片:圆形排名徽标、🔥 热度胶囊、hover 时左侧滑入主题色高亮条,亮色 / 暗色双主题都做了适配。
  • 路由懒加载:所有页面用动态import()拆包,首屏只加载首页,其余按需加载,配合后端缓存,首屏很快。
  • 权限守卫:路由层做了requiresAuthadminRouteGuard双重守卫,未登录访问个人中心会带redirect跳登录,后台越权自动回退。

后端与部署

  • 后端:Django 4.2 + Django REST Framework 3.15,按业务拆成Feature-Based 模块(文章、评论、聊天、弹幕、AI、用户……互不耦合)。
  • 数据库 / 缓存:MySQL 8.0 存业务数据,Redis 5.0 做缓存与会话。
  • 运行环境:一台腾讯云轻量云服务器 + 宝塔面板;后端用Daphne(ASGI)启动,前面挂 Nginx 做反代;服务器跑 Python 3.8。

启动命令示例:

# 生产环境用 www 用户启动 ASGI 服务 daphne -b 127.0.0.1 -p 4444 config.asgi:application
  • 媒体与静态资源:封面 / 图片走独立存储 + CDN 加速,提升各地访问速度。

运维方案

  • 域名解析 + 备案:国内服务器必须备案,这块流程跑下来确实花了点时间(提交资料、管局审核),但合规性很重要,也避免被关停。
  • CI/CD:代码推送后自动完成「前端构建 → 同步到服务器 → 重启服务」一条命令搞定,再也不用手动 scp。
  • HTTPS:全站强制 HTTPS,证书用免费 CA 并配置自动续期,浏览器小绿锁稳稳的。

四、特色功能与"踩坑"记录

亮点功能展示(按特色页面逐个看)

比起"功能清单",我更想带你逛几个最有代表性的页面,它们也是这个博客个性的来源:

🏠首页(/)


信息密度最高的门面。采用新拟态 + 玻璃拟态卡片,集成了:

  • 实时热榜 / 资讯:后端聚合微博、抖音热搜,每条带排名徽标(前三名金红渐变圆形)+ 🔥 热度胶囊,一眼看世界;
  • 天气查询:输入城市即时查天气;
  • 每日一句:每天一句文案,治愈开场;
  • 最新文章推荐:来自文章列表推荐一些文章;
  • 最新评论:来自留言厅评论展示;
  • 全站亮 / 暗双主题,切换顺滑。
    首页是"聚合 + 个性"的集中体现。

💬留言厅页面(/message)
一个轻量的访客留言板。不用登录也能留下足迹,支持互动回复,是博客里最有"人气"的角落,也是我和读者直接对话的地方。

🎤聊天室页面(/chat)
基于长连接的实时聊天室(重构版)。能看到实时收发消息,用户之间可以即时开聊——把"看博客"变成了"逛社区"。技术上用长轮询 / WebSocket 维持在线状态。

🤖AI 问答页面(/ai)
接入火山方舟(ARK)大模型,核心是一个StreamingHttpResponse:后端边从模型拿到 token 边往响应里写,前端读到就渲染,于是你的问题刚提交,回答就一个字一个字"打"出来,体验和主流 AI 产品一致。写作卡壳时,它是我的灵感搭子。

🕹️终端玩具页面(/terminal)
一个藏在导航外的彩蛋页:"黑客终端"。用命令行的方式和你互动,敲命令、看特效,纯属技术人的浪漫玩具。访问时连导航和页脚都特意隐藏了,沉浸感拉满。输入help有对应的命令介绍哦~。

📊数据大屏页面(/data-screen)
用 ECharts 做的可视化大屏,把访问量、热度、用户行为实时铺开。它既是给访客看的"酷炫页",也是我检验后端统计接口是否够快的"仪表盘"。

除此之外还有音乐播放器、相册、语录收藏馆、知识星图、弹幕等页面,每个都尽量做出自己的味道。如果你对其中某个页面的实现感兴趣,评论区告诉我,单独开篇讲。

性能与 SEO 优化

  • 首屏优化:路由懒加载 + 后端三层缓存(内存 / Redis / 数据库)。热门文章查询从200ms降到20ms,首屏加载从3.2s缩到1.8s,缓存命中率超 80%。
  • SEO:后端自动生成sitemap.xmlrobots.txt,并主动向搜索引擎推送,收录更友好;文章页做了语义化结构与 meta 优化。

踩坑日记

建站过程真踩了不少坑,分享两个印象最深的(都是真事):

坑 1:MySQL 连接数爆满(Too many connections)
一开始后端用gunicorngevent 协程 worker+ Django 的CONN_MAX_AGE(连接复用 60s)。结果跑一段时间后,每个请求都报:

django.db.utils.OperationalError: (1040, 'Too many connections')

所有 API 全线 500。

  • 原因:gevent 用 greenlet 调度,Django 无法可靠回收每个协程的持久连接;配合高并发,连接一路堆积到 MySQL 上限(默认 151)。
  • 解决:把 worker 类换成gthread(线程模型下连接回收正常),并加了一个"每请求结束回收旧连接"的中间件;生产环境CONN_MAX_AGE也适当调小,worker 数做了上限保护。改完连接数稳定在低位,再没出现过。

坑 2:生产环境日志权限 denied
部署后用www用户启动服务,结果一启动就崩:

PermissionError: [Errno 13] Permission denied: '.../logs/django_error.log'
  • 原因logs目录当初是 root 建的,www没写权限,Django 连日志配置都过不了,进程直接挂。
  • 解决:代码里加了"日志目录不可写时自动降级为控制台输出"的逻辑,保证服务能起来;同时在服务器执行:
chown -R www:www /www/wwwroot/guanxi_blog_deploy/logs

恢复文件日志。

这两个坑都是"环境权限 + 并发模型"的经典组合。记住一句:换 worker 模型前,先想清楚连接怎么回收;部署到非 root 用户,提前把目录属主改好。

开发时间线

  • 第 1–2 月:定需求、搭骨架(Django + Vue 脚手架)、做文章与评论;
  • 第 3–4 月:补齐用户系统、实时聊天、弹幕、音乐等互动模块;
  • 第 5 月:接入 AI 对话、热榜聚合、数据大屏;
  • 第 6 月:买域名、服务器备案、部署上线、压测调优、修各种线上坑。

五、内容规划:博客里有什么

  • 技术教程:从入门到实战,尽量写得能跟着做。覆盖前端(Vue 2 / Vue 3、HTML/CSS/JS、Git、性能优化)、后端(MySQL 优化、Python、爬虫)和计算机基础(数据结构);
  • 更新目标:争取每周至少一篇,质量优先,不水文。读者催更是最好的生产力 😄。
    • 例:《深夜代码时光:程序员的孤独与快乐》《英雄联盟s15全球总决赛》
  • 生活随笔与兴趣:技术之外的电竞、深夜 coding 碎碎念,偶尔不正经;
    • 例:《博客系统开发复盘:技术选型与架构设计》《我的编程之路:从小白到全栈开发者》《大学四年的技术成长轨迹》《如何高效学习前端开发》
  • 项目复盘与成长:把自己做项目、学技术的经历拆开讲,既是记录也是方法论;
    • 例:《前端开发从0到1》《HTML、CSS、JavaScript 与 Vue 3 详细入门教程》《Vue2 入门教学》《从零开始学Git:版本控制的艺术》《前端性能优化实战:让你的网站飞起来》《MySQL数据库优化实战经验》《Python编程入门教学》《Python爬虫入门教学》《Vue2 + Vant 博客系统搭建指南》《数据结构》

六、未来规划(Roadmap)

短期计划(3 个月内)

  • 完善 AI 功能:更聪明的摘要、对话记忆、多轮上下文;
  • 移动端体验深度打磨(现在能用,但还能更顺);
  • 评论区增加更多互动玩法(点赞、@、表情)。

长期愿景

  • 把博客做成小社区,支持更多用户共创内容;
  • 沉淀一个个人知识库,文章之间互相链接成网;
  • 时机成熟时,考虑把核心代码开源,回馈社区;
  • 探索更多"平台没有"的玩法,比如可视化年度总结、访客地图等。

七、结语心声与互动

从 2025 年 7 月决定动手,到 11 月完成 1.0 版本,这四个月里,我几乎把所有的业余时间都交给了这个博客。选择 Django 和 Vue3 作为技术栈,与其说是"选",不如说是"学"——我想通过一个完整的项目,把学校里没机会实战的知识都补上。从零开始,一边看文档、搜教程,一边对着 AI 生成的代码片段调试,那种"懂了又好像没懂"的迷茫,相信很多自学路上的朋友都经历过。

最煎熬的不是写代码,而是部署。第一次把项目推到服务器,看着满屏的报错,连 Nginx 和 uWSGI 都分不清,只能硬着头皮一篇篇翻博客、一个个试命令。现在回想,那些深夜的"踩坑"反而成了最扎实的成长。

毕业后,我进了一家小公司做前端开发。实习三个月,现在是转正试用期第一个月,带我的前辈实习的第2周后就离职了。剩下的日子里,我独自面对陌生的代码库和紧迫的需求,每天在"看不懂"和"必须搞懂"之间挣扎。正是这段经历,让我更珍惜这个完全由自己掌控的博客——它不仅是作品,更是我的"数字自留地",一个可以自由实验、记录和分享的角落。

如果你也在自学、在转型、在独立开发的道路上摸索,希望我的分享能给你一点共鸣或启发。技术之路没有捷径,但有人同行,总会走得更踏实一些。

这个项目让我深刻体会到独立开发的全流程:从需求分析、技术选型、前后端实现,到部署运维、性能优化、SEO 配置。每一个环节都有其挑战,也都有对应的解决方案。

关于技术交流,我始终认为分享是最好的学习方式。无论是 Django 的异步处理、Vue 3 的组合式 API,还是数据库连接池的优化、生产环境权限管理,我都愿意和大家深入探讨。如果你对文章中提到的任何技术点感兴趣,或者有更好的实现思路,欢迎在评论区留言交流。

小生不才,既无惊世之才,也无盖世之颜,只能在无数个深夜里,用一行行代码、一篇篇碎文,笨拙地搭建自己的技术世界。

备案被退三次、域名卡了二十多天、服务器半夜崩掉、CSS 调到凌晨……说不心酸是假的。但终究舍不得放弃,因为这里每一页,都是我亲手打磨的心血。

若您偶然读到这篇文章,权当路过一间灯火未熄的小屋。茶凉椅旧,但字字真诚。若有一句入眼,便是我熬过的夜、掉过的发,都没白费。

——技术之路,道阻且长,行则将至。与诸君共勉。


转载请注明出处。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询