Hexo 8 + Fluid 建站指南
建网站,不只是写一页 HTML,而是完成一次身份转变:从互联网服务的使用者,成为能够向公开互联网提供内容与服务的管理者。
平常我们打开淘宝,只需要搜索、浏览、下单;但假如要在网上开自己的店,就要考虑店铺地址、页面装修、商品上架、用户互动与持续维护。**个人网站也是如此。**这篇文章以熟悉的淘宝官网为线索,按照 入网 → 建站 → 管理 → 运维 四个部分,梳理一个真正可以长期运营的网站是怎样诞生的。
一、入网:租一块地,申请一个门牌
淘宝店铺依托淘宝平台,个人网站则需要先找到自己的「互联网营业场所」。最重要的是云服务器、域名、备案。
1. 云服务器:网站住在哪里?
云服务器是一台由服务商托管、可远程管理的计算机。我们按年或按月租用 CPU、内存、磁盘和网络,它可以全天候向互联网提供网页或 API。
- 地域: 访客主要在国内,通常优先考虑中国内地地域,同时留意备案要求。
- 算力: 纯 Hexo 静态博客的工作负载很轻,不需要大规格服务器。
- 磁盘与带宽: 图片、视频和并发访问比文字本身更耗资源。
- 总成本: 首年优惠并非长期续费价,还需留意公网带宽、备份与快照费用。
本站示例配置是 2 核 vCPU、2 GiB 内存、40 GiB 云盘、3 Mbps 公网带宽,能够承载 Nginx 和轻量静态博客;以后若部署数据库、独立后端或在线工具,再按真实负载扩容。它不适合直接运行本地大模型。
2. 域名:让人记住网站在哪里
如果服务器公网 IP 相当于一个网络地址,域名就是好记的门牌。用户输入 zkkk123.cn 时,不必背诵一长串数字。
域名可在阿里云域名或其他注册商购买,完成实名认证后,在 DNS 解析中添加一条指向服务器公网 IPv4 地址的 A 记录;如要支持 www 子域名,则另外配置对应记录。
常见误区: 买了域名不等于拥有服务器;能访问服务器 IP 不代表域名已解析;DNS 配好了也不等于网页已发布。三者各自有独立职责。
3. 备案:公开网站的必要身份
在中国内地服务器接入网站,通常需要完成相应的 ICP 备案。个人网站备案一般围绕主体实名认证、域名、接入服务商和网站信息等资料进行;依照接入商指引提交、等待审核,通过后正确展示备案号,并核实适用的公安联网备案要求。
官方入口:工信部 ICP 备案系统 · 阿里云备案帮助。
ICP备案不是任意商业业务的通行证。 个人非经营性博客与收费平台、第三方交易或其他特定业务的合规要求不同,实际经营前应确认主体、备案及许可要求。
入网总结:服务器负责运行,域名负责定位,备案解决必要的合规身份。
二、建站:让自己的网页出现在浏览器里
回到淘宝首页:当我们敲下网址,屏幕为什么能出现商品列表?不是因为「域名里面存着网页」,而是浏览器经由网络找到了正确的服务器。
1. 浏览器访问网站的全过程
- 用户在浏览器输入域名,请求 DNS 解析。
- DNS 返回目标 IP(有 CDN 时可能先到 CDN)。
- 浏览器与服务器建立 HTTPS 连接;安全组和防火墙需要允许必要的访问。
- Nginx根据请求的域名与路径找到静态文件,或将请求转给后端。
- 浏览器下载 HTML、CSS、JavaScript、图片等,绘制用户看到的页面。
一个网站对外可用,必须贯通域名解析、网络端口、Web 服务器、网站文件及 HTTPS。SSH 能登录,只说明我们能管理机器,不代表网站已经可用。
2. Hexo + Fluid 与云服务器各是什么角色?
| 技术组件 | 实际职责 | 类比淘宝 |
|---|---|---|
| Markdown | 编写文章与页面内容 | 商品描述与展示素材 |
| Hexo 8 | 将内容构建为 HTML 等静态文件 | 自动布置展台 |
| Fluid | 页面风格、导航、封面、文章展示 | 店铺装修 |
| Nginx | 提供网页文件并处理访问请求 | 商场入口 |
| GitHub | 保存源码与历史修改 | 店铺设计图版本库 |
| GitHub Actions | 代码提交后自动生成并上传网站 | 自动上架流水线 |
| ECS 云服务器 | 承载公开网站 | 真正的营业场地 |
Hexo 是静态网站生成器,不是必须常驻运行的后端。 最终对访客提供页面的是 Nginx 等 Web 服务。
3. 这座博客采用的真实发布架构
本文使用的仓库基于 Hexo 8.1.1 + Fluid 1.9.9。文章源文件放在 source/_posts 目录,封面图片放在 source/images 目录。仓库 main 分支更新后,GitHub Actions 会安装依赖并运行项目构建脚本(包含 Marp 幻灯片与 Hexo 页面生成),再通过 SSH/rsync 把 public 目录同步到服务器网站目录。
1 | |
本地检查可以使用:
1 | |
浏览器访问本地预览地址,确认内容和图片无误后再提交。GitHub 保存的是源码并负责触发部署,公开域名指向的依然是云服务器;不是简单把域名重定向到 GitHub。
三、管理:从淘宝买家变成淘宝商家
作为淘宝买家,我们会搜索商品、查看详情、看评价、填写收货信息并创建订单。作为商家,则要上传商品图文、设置价格和库存数量、发布商品、处理订单和用户反馈。相同的网站,两个角色面对的是完全不同的操作系统。
个人网站同样需要分清 访客前台 与 站长后台/开发端:
| 访客想做的事 | 站长需要管理的事 |
|---|---|
| 搜索文章、查看详情 | 编写内容、设置分类和搜索入口 |
| 浏览图片、下载共享资源 | 上传、压缩图片,维护资源链接 |
| 阅读研究成果和项目介绍 | 更新学术名片、项目进展与作品 |
| 留言、评论、发送反馈 | 审核互动、处理垃圾信息与隐私 |
| 使用网页小工具 | 发布功能、维护 API、处理故障 |
| 订阅更新 | 管理栏目、内容质量和更新节奏 |
不要把类比理解成 Hexo 自带电商功能。 商品下单、库存、订单、会员身份等通常需要后端与数据库,而 Hexo 博客默认只提供静态展示能力;评论、搜索和表单也需要独立配置或接入服务。
1. 如何在 Hexo 「上架」一篇内容?
文章文件可以放在 source/_posts/wiki/ 下,用 YAML Front Matter 设置标题、日期、分类与封面:
1 | |
图片真实文件应位于 source/images/guides/hexo-8-fluid/cover.svg。文章中还可以用普通 Markdown 图片语法引用。把图片传上服务器不等于网页自动显示图片,必须有对应的引用路径。
在当前工作流中,最重要的「发布」动作就是提交 GitHub → Actions 构建成功 → 公网检查。站长管理的不是一张网页,而是内容、资源、发布、交互与反馈形成的闭环。
2. 个人网站究竟应该公开提供什么?
- 个人互联网名片: 自我介绍、联系方式、研究方向和项目作品。
- 知识与心得: 解决过的问题、真正理解的经验、长期可检索的笔记。
- 公开资源: 模板、论文演示、开源代码与可授权共享的数据。
- 工具与服务: 无需登录即可使用的小工具;有后端时再拓展交互能力。
- 互动交流: 问题反馈和评论机制,兼顾用户体验、隐私与维护成本。
从「我要用哪个功能」转向「我要让访问者获得什么」,就是从互联网消费者向管理者转变的关键。
四、运维:网站营业以后,怎样一直可靠?
淘宝商家上架商品之后,还需要关注库存、投诉、订单异常和恶意行为。网站也一样:发布上线只是开始,长期可访问才是真正的交付。
1. 服务器、域名与访问健康
| 层次 | 需要检查 | 典型故障 |
|---|---|---|
| 域名与 HTTPS | 续费日期、DNS、SSL 证书 | 域名或证书到期 |
| ECS 与网络 | CPU、内存、磁盘、带宽、80/443 端口 | 服务器满载、网页打不开 |
| 代码发布 | Actions 状态、部署密钥、构建日志 | 提交成功但没有上线 |
| 用户体验 | 404、资源丢失、页面加载、反馈 | 图片失效、页面缓慢 |
GitHub 版本记录不等于完整服务器备份。 网站源码、Nginx 配置、证书、数据库(如果有)需要采用各自适当的备份与恢复方式。当前部署使用 rsync 的 –delete 语义,目标目录中不属于构建产物的文件可能被删除,不能直接当成随意上传文件的仓库。
2. 安全与系统维护
- 及时更新操作系统、Nginx、宝塔及插件。CentOS 7 已结束常规维护,未来扩展后端前应安排迁移计划。
- SSH 使用密钥与最小权限,限制宝塔面板暴露范围;仅放行必要网络端口。
- 将部署私钥、API 密钥放入 GitHub Secrets,不要写进文章、Git 仓库或前端代码。
- 后端 API 要考虑鉴权、限流、输入校验、日志脱敏和异常监控。
- 有备份还不够,重要改动前要验证确实能够恢复。
3. SEO:让陌生人能找到你
像淘宝的商品标题和检索页一样,文章也需要清晰的主题。优先完成准确标题、语义化小标题、文章摘要、规范 URL、站内链接、图片 alt 文本、站点地图,再考虑向百度搜索资源平台和 Google Search Console提交站点。
SEO 不是在文章里重复关键词,也不能保证立即收录。对于长期个人博客,有价值的原创内容、清晰的信息结构与稳定的访问体验更重要。
若正式网站启用了 HTTPS,还应统一 Hexo 的站点 url、站点地图和重定向,减少 http/https 并存导致的重复页面。
4. 加载速度:最应该优化的往往是图片
2 核 2G 静态网站通常不是先缺算力,而是被大图、字体、视频和第三方脚本拖慢。推荐按资源分类处理:
| 资源 | 轻量化策略 |
|---|---|
| 照片、文章封面 | 合理尺寸与压缩;必要时转 WebP/AVIF |
| 图标、流程图 | 适合时用 SVG,避免巨大的截图 |
| 长文章插图 | 延迟加载,并设置宽高避免布局跳动 |
| 视频、大型资源 | 独立托管或对象存储,按需加载 |
| JS/CSS | 减少不必要插件,利用缓存 |
| 跨地域大量访客 | 评估 CDN,但注意流量和回源成本 |
先用 Chrome DevTools 的 Network 或 Lighthouse 找到具体瓶颈,再决定是否升级带宽或迁移静态资源;不要一开始就堆服务器配置。
5. 最小化的站长日常
- 写作时: 本地改源码、预览页面,避免直接在生产服务器编辑。
- 每次发布: 检查 Actions 构建状态,再打开公网地址验收。
- 每周: 查看核心页面可用性、错误日志和反馈。
- 每月: 检查域名、SSL、备份、资源使用情况及安全更新。
- 升级架构前: 建立快照,保留回滚方案,逐步从静态站扩展到后端服务。
结语
入网解决「我在互联网上在哪里」,建站解决「别人如何看到内容」,管理解决「我向访客提供什么」,运维解决「这些服务如何持续可靠」。
开个人网站的真正意义,不是复制淘宝那样完整的交易平台,而是第一次站在互联网服务提供者的位置,亲手管理一块能够被全世界访问的数字空间。
延伸阅读: Hexo 官方文档 · Fluid 用户手册 · GitHub Actions · ICP备案查询
