搭个人站时最常见的过度设计,是先挑一个后端框架、配好数据库、再想内容。如果你的站点主要是"给人看文章",这一整套都用不上。
省掉的东西比得到的东西多
- 没有数据库:内容就是你仓库里的 HTML 或 Markdown,不存在备份、迁移、连接池、慢查询。
- 没有运行时漏洞面:没有登录态、没有会话、没有 SQL 拼接、没有文件上传。一个纯静态目录,nginx 直接吐文件,能被打的主意非常有限。
- 托管成本近乎为零:同一台机器上开个目录就能跑,换个思路放对象存储加 CDN 也可以,迁移时只需要拷文件。
- 打开就快:没有服务端渲染等待,首字节就是文件头。
在备案这件事上的实际优势
纯静态还有一个常被忽略的好处:内容完全可控。交互式站点要考虑用户生成内容(评论、发帖、上传)带来的审核责任,纯静态站没有这个问题。
按监管口径,交互式站点指通过互联网实现用户与用户、用户与平台之间交流互动的站点,含站内搜索、留言板、在线聊天、用户评论等功能;仅展示静态信息、没有用户互动功能的属于非交互式。个人博客类站点通常建议按非交互式申报,审核链路更短。
几个实操建议:
- 不要为了"看起来功能全"而加评论区。真要交流,留一个邮箱就够,
mailto:链接不构成交互式服务。 - 别做站内搜索框。它属于明确的交互功能,会让你的非交互式声明站不住脚。
- 备案审核期间网站要能被公网访问,内容要与备案名称相符。一个页面完整、能正常打开、没有非法信息的站点,基本不会在内容层面卡住。
代价是什么
静态站换来简单的同时,也放弃了服务端能力:没有登录、没有支付、没有按用户返回不同内容、没有实时写入。文章多了之后,构建流程要自己想办法(模板引擎或静态生成器),改一个颜色要保证多处一致。
一个折中做法是:主站保持静态,需要服务端能力的功能单独放在子域名上跑一个小服务,两者用 nginx 按域名分流。这样主页依然是零依赖的静态文件,不会因为后端故障而打不开,运维复杂度也不会互相传染。
什么时候该老老实实上后端
出现下面任一需求时,就别硬撑静态方案了:需要用户登录或权限区分、需要在线支付、需要按请求实时读写数据、需要多端共享状态。除此之外,"文章 + 项目介绍 + 联系方式"这类个人站,静态方案在成本、稳定性、安全上都更划算。