在一台配备i5-10400和16GB内存的OptiPlex 7070上跑服务,意味着你要一直想方设法从这套配置里榨出每一分性能。为这个网站的速度做优化的这段经历,最后带来了一个改变一切的发现,而且跟升级硬件没有关系。
性能之谜
优化之旅是从用Chrome DevTools MCP测试网站速度开始的。结果相当打脸——一个自托管网站根本没法跟Apple这样的正式生产网站相比,甚至比不过我最近投递简历的那家公司的网站。自然而然,这促使我去请教AI助手,并做研究,想搞清楚为什么人家的网站表现那么好。
很快就浮现出一个模式:大多数高性能网站都在花钱买高级托管服务。而这边,我用的却是自托管的电力和网络。这让我开始怀疑,这套配置本身是不是就不够格。
自托管的现实检验
经过一番计算,OptiPlex 7070这套配置和付费托管方案相比,其实相当有竞争力。想想看:从托管服务商那里获得6个vCPU,通常每月要花大约20美元,一年就是240美元,而且你还只能用来托管你的网站。
而这套配置,不光跑这个网站,还处理着好多其他自托管服务。硬件投入是一次性的成本,虽然确实有持续的电费和网费(光是网络就大约每月50美元),但由此得到的灵活性和学习机会,远远超过这点开销。
自托管不只是省钱,它还关乎理解网络运作、排查真实世界的问题,以及从踩过的坑里学习。用托管服务是拿不到这种实操经验的。
网络瓶颈
最初的诊断看起来很明确:问题出在网络连接上。速度不稳定,带宽有限,网站的首字节时间(TTFB)长达2秒,整体加载时间要5秒。跟几乎瞬间加载完成的专业网站相比,这些数字实在令人失望。
感觉自己已经触到了自托管能达到的极限。毕竟,如果网络就是瓶颈,还能做什么呢?把这样的速度当作自托管配置"够用就好"的结果来接受,似乎是唯一的选择。
CDN带来的顿悟
然后灵光一闪的时刻来了:原来CDN(内容分发网络)缓存这件事,我根本没真正理解过。
这些域名早就注册在Cloudflare上了,理论上也知道CDN会缓存页面,但一直没有正确配置。性能就这样在不知不觉中被白白浪费掉了。
深入研究CDN缓存配置之后,一切都变了。网站的TTFB从2秒降到了200毫秒以下,提升了10倍。以前要5秒才能加载完的页面,对回访用户来说现在几乎是瞬间就出现了。
但也有个坑:性能并不稳定,因为不是每次缓存命中都会成功。缓存未命中时,访客体验到的还是家用服务器那种较慢的加载速度。但一旦缓存命中——对热门页面来说这是大多数情况——体验就快得惊人。
关键收获
- 硬件不一定是瓶颈。这台中端配置的OptiPlex从来都不是问题所在,问题出在网络延迟和配置上。
- 自托管是可行的。有了合适的CDN配置,自托管网站即使跑在家用网络上,也能和专业托管的网站一较高下。
- 理解才是关键。这次突破不是靠花钱买更好的托管方案得来的,而是靠理解CDN缓存的工作原理并正确配置它。
- 边做边学。自托管逼着你去理解整个技术栈。当某个环节出问题时,你必须深挖下去,搞清楚原因。这是非常宝贵的经验。
接下来的路
提高缓存命中率、优化哪些内容该缓存多久,这些工作还在继续。但从TTFB2秒到200毫秒以下响应时间的这番转变,已经证明了当初选择自托管是对的。
给正在考虑自托管的人一句话:不要被最初的性能数字吓退。很多时候,解决方案不是更好的硬件或更快的网络,而是理解并正确配置你手头已经有的工具。
有时候,最好的优化不是升级,而是终于学会怎么用好你已经拥有的东西。