我把博客从 WordPress 换成了纯静态
换的原因很实际:一台 2G 内存的小机器,WordPress 开着插件、MySQL 常驻,平时就吃掉一半内存。被扫一次后台,PHP-FPM 直接打满,站点跟着 502。
现在是一堆 HTML 文件。同样的机器,同样的流量,内存常年压在 400M 以内。
攻击面差在哪
| 项 | WordPress | 纯静态 |
|---|---|---|
| 数据库 | MySQL,SQL 注入面 | 无 |
| 后台 | /wp-login.php 可爆破 | 无 |
| 插件 | 漏洞主要入口 | 无 |
| 单请求成本 | 解释 PHP + 查库 | 读文件,微秒级 |
| 被 CC 时 | PHP 进程先死 | 边缘缓存直接顶住 |
静态站不是"更安全",是没有东西可以打。扫描器来了只会拿到 404,没有登录框、没有接口、没有上传点。
迁移做了四件事
一、把文章导出成 markdown。 WordPress 后台导出 XML,脚本转成一篇篇带 frontmatter 的 .md,放在 content/posts/。
二、写个构建脚本。 读 markdown 生成 HTML,顺手生成 sitemap、RSS 和列表页。这一步很值:以后发文章只写 md,其它全是产物。
三、服务器只放产物。
rsync -a --delete dist/blog/ /var/www/blog/
chown -R root:www-data /var/www/blog
find /var/www/blog -type d -exec chmod 755 {} +
find /var/www/blog -type f -exec chmod 644 {} +
属主 root、组 www-data、文件 644:web 进程只能读,改不了自己的页面。这一步比装任何防护插件都实在。
四、nginx 断掉所有探针。
location ~* ^/(?:\.|wp-|xmlrpc|phpmyadmin|\.env|\.git) { return 444; }
静态站上出现 /wp-login.php 只有一种解释:扫描器。直接断连,不回任何字节。
失去的东西
得说实话:没有评论、没有搜索、没有后台编辑器。
评论我直接砍了(一个人维护,评论区的价值不如它带来的垃圾和审核成本)。搜索用不上,文章不到三位数,分类加归档就够。编辑器更不需要,vim 比任何富文本框都顺手。
值得吗
对我值。日常改动只有一个动作:改 md → 跑 build.py → rsync。三分钟。而省下来的内存和运维时间,是每天都在付的。
如果你的站需要多作者、需要评论、需要插件生态,WordPress 仍然是对的。但如果你只是想写字,静态是更省事的那一边。
静态站扛不住的是纯流量型 DDoS——那是带宽问题,靠 CDN 或高防解决,跟静态不静态无关。别把它当护身符。
需要按上面的步骤在自己服务器上配一遍? 可以邮件 2725854295@qq.com,或者关注公众号「凌的科技圈」留言。说明系统版本和域名,我给一套现成的配置文件。