做站十五年,我给自己的动手清单做过一次「反向整理」:与其记录该做什么,不如记录那些「做了很爽、事后一次都没用上」的事。整理出来的清单比预期的长,而且每一条当初都有充分理由——省钱、安全、专业、以后要用。事实是,绝大多数「以后」从来没到过。
这篇文章讲的是五种我亲手做过、又亲手拆掉的东西,以及后来我用来做判断的那套标准。它不是劝人别折腾,而是把「折腾」的成本算清楚一点。毕竟个人站长最稀缺的资源不是钱,是持续投入的时间和注意力。
一、为「以后可能」提前搭好的多机架构
我做过最典型的一次,是给一个日访问不到两千的站搭了三台机器:一台 Web、一台数据库、一台做缓存和图片。理由是「万一流量起来,扩展方便」。搭完花了整整两周,配置读写分离、会话共享、图片同步、内网证书、监控,每一项都挺有成就感。
真实结果是:这套架构跑了一年多,流量始终没到这个量级,而我每个月都要在三个地方分别升级、分别排障、分别备份。有次数据库机器磁盘满了导致整站白屏,我在两台机器之间来回查了四个小时,最后发现是一个 binlog 累积的问题。单机的话,df -h 一眼就能看出来。
后来拆回单机,站点反而更稳了。判断标准我总结成一句话:架构的复杂度应该由「当前的故障半径」决定,而不是由「未来的可能规模」决定。单机能撑住的时候,多机带来的不是弹性,是把一个故障点变成三个。
当然有例外:会丢失数据的环节(比如备份、数据库)值得提前做好,因为它们不做的话,出事就不可挽回;而会丢失性能的环节,晚点再做只是慢一点,随时可以补。这条区分能过滤掉大部分「防御性过度设计」。
二、为了「显得专业」上的监控面板
有段时间我特别沉迷监控看板:CPU、内存、磁盘、网络、请求数、错误率、响应时间分位数,十几块面板拼成一面墙,手机上还配了推送。头两个星期我每天看好几遍,觉得自己对系统的掌握度前所未有地高。
三个月后,那些面板我一个都不看了。真正救过我的告警只有三条:磁盘使用率超过 85%、站点首页返回非 200、证书剩余天数小于 21 天。其余的面板全是「发生了也不会让我做任何动作」的信息。
这件事让我改了一套判断法。给每条监控加之前,先问自己三个问题:
- 这个指标越过某个值时,我会做什么具体动作?说不出来就不加。
- 这个指标从越界到出事,有多长时间窗口?窗口小于我睡觉时长的,必须配告警而不是面板。
- 如果这条告警误报,我需要多久判断出来?超过两分钟的,说明阈值设计有问题。
现在我的监控只剩一页,十来条曲线,五条告警。少了很多「掌控感」,但告警响了我知道该干什么,这比什么都强。监控的价值不在于看得全,而在于响起来的时候有用。
三、囤了几十个没用上的域名
这个可能很多站长都有共鸣。看到不错的词就注册,看到便宜的促销就续费,手里攒了几十个域名,每个都「构思过一个站」。实际情况是:真正做起来的只有一两个,其余每年默默续费,续费的时候还要犹豫一下「这个要不要留」。
我做过一次盘点,发现每年光是这些「备用域名」的续费就够买一台配置不错的小机器。更麻烦的是它们带来的隐性成本:每个域名都要有续期提醒,不然某天掉了一个还会影响手里的其它站;每个域名都「计划过」,所以在做新站的时候会分心;还有几个域名曾经解析到旧项目上,留下了历史链接和缓存,处理这些噪音也花时间。
后来我定了一条硬规则:域名必须在注册后三个月内上线一个真实可访问的页面,否则到期不续。不要求做完整,一个首页加几篇内容就算数——重点是验证自己真的会动手,而不是在脑子里动手。这条规则执行了两年,域名从四十多个降到六个,每一个都在实实在在产生流量。
四、装了又卸的各种「效率工具」
编辑器换了四五个,笔记软件换了三轮,任务管理工具试了七八种,甚至连终端都重配过好几回。每次换都有一套完整的理由:这个有插件生态、那个支持双向链接、那个能和手机同步。每次迁移都要花一两天把内容搬过去、把快捷键调成肌肉记忆的样子。
现在回头算这笔账,这些工具对我的产出几乎没有影响。真正让产出变多的,是三件很朴素的事:把每天要做的事写在纸上、一次只做一件、做完就关掉浏览器。工具在这三件事面前是无关变量。
我不是说工具完全没意义。我的判断标准是:如果一个工具不能减少「我每天必须做的动作」,那就只是在改变「我做动作的方式」。后者带来的快感远大于收益。而判断一个工具是否真的减少了动作,需要先把自己的工作流跑顺——顺序反了就会一直在换工具。
顺带说一句,这些折腾留下的最大成本不是时间,是「碎片化」。笔记在三个地方,代码片段在两个仓库,配置文件散在四台机器上,等到真的需要复用的时候,我记不清它到底在哪。整理这些碎片花的时间,比我当初换工具的时间加起来还多。
五、为了「安全」堆上去的层层防御
这一条我承认曾经有点上头。改 SSH 端口、装 fail2ban、开防火墙、上 WAF、加限流、再加一层密码认证,配置做完觉得自己固若金汤。直到有一次我在外面需要紧急登录服务器,因为 IP 不在白名单里,硬是等到晚上回家才处理完一个五分钟的问题。
过度防御的问题在于,它把「安全」和「可用」放到了对立面,而个人站长最需要的是后者。真正防住攻击的,往往只有几条最基础的:禁用密码登录只留密钥、面板和数据库端口不对外、后台加一层入口限制、定期更新。这几条做完,能挡掉绝大多数自动化扫描。剩下那些复杂规则,挡住攻击者的同时也在挡你自己。
现在的做法是分层:基础项必须做且配好恢复路径;增强项做之前先想清楚「如果我丢了访问手段,怎么恢复」。比如防火墙规则改之前先在 cron 里挂一个「十分钟后自动清空规则」的兜底任务,确认没问题再取消。这个小技巧救过我两次。
六、什么样的折腾是值得的
拆掉这些之后,我慢慢摸出了一套判断法。五个问题,任何一个答不上来就先不做:
- 它现在解决的是一个真实发生过的问题,还是我担心会发生的问题?后者要等它真的发生过一次再动手。
- 它替我省下的时间,能在三个月内覆盖搭建它的时间吗?覆盖不了就是净亏损。
- 它出故障的时候,我能不能在一小时内定位?不能定位的东西,等于给系统加了一个黑盒。
- 如果我半年不碰它,它会自己坏掉吗?会自己坏掉又不会自己提醒的,属于负资产。
- 它带来的收益,是说给自己听的还是给访客的?访客感知不到的优化,优先级永远排在后面。
这套标准帮助我推掉了很多想法,也让我对留下来的东西更有信心。有意思的是,推掉之后腾出来的时间,最后都花在了内容上——而内容才是个人站真正能积累的东西。
七、拆掉之后反而更快了
把多机拆回单机、监控砍到一页、域名清到六个之后,我有一个很意外的发现:新站从「有个想法」到「上线第一篇」的时间,从两周缩短到了两天。不是因为我变快了,而是因为没有前置的准备工作需要做。
这就是「减法」真正的收益——它释放的不是硬盘和账单,是启动成本。对一个靠持续产出维持的站点来说,启动成本每降一点,长期产出就多很多。而那些精心搭建的架构、面板、工具,恰恰是在抬高这个成本。
八、小结:先减法,再加法
我不后悔做过那些折腾,它们让我知道了自己的真实需求边界在哪里。但如果是给五年前的自己一句话,我会说:先把一个站做起来,再考虑给它加什么。
个人站长的优势从来不是资源多,而是决策快、试错便宜。把机器、工具、防御都控制在「一个人十分钟能看懂」的规模内,这个优势才成立。超出这个规模的每一层,都在把优势换成负担。