---
id: static-over-wordpress
title: 我把博客从 WordPress 换成了纯静态
date: 2026-10-21
updated: 2026-10-22
category: 建站
tags: 静态站, WordPress
minutes: 10
---

换的原因很实际：一台 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 或高防解决，跟静态不静态无关。别把它当护身符。
:::
