X站长网站被攻击,我是如何将整站静态化部署在cloudflare上面的?

前段时间,X站长官网遭遇了极大规模的网络攻击,服务器的 IPv4 直接被打进黑洞,常规的 SSH 完全连不上。最后没办法,只能硬着头皮切进系统的救援模式,手动敲命令行跑脚本,才勉强把核心的数据库给备份抢救出来。

然后老K提供了全套的服务器+CDN赞助,终于把网站给稳定了下来。

后来群里发财CMS的作者提供了一个思路,我又用ai研究了一下,发现原来还可以这么玩!

目前X站长是前端后端彻底分离,将整个网站转化为纯静态页面,并托管到老K的CDN上面(其实也可以放在Cloudflare Pages )。

今天这篇文章,以CF为例,来复盘一下我是如何完成这套“零成本、抗死DDoS、免维护”的终极防御架构的。

1. 为什么选择“纯静态化 + Cloudflare Pages”?

大家都知道我一直用wordpress建站,传统的 WordPress 架构非常依赖 PHP 和 MySQL。只要访客刷新页面,服务器就要消耗资源去查询数据库。这就给了攻击者可乘之机——用 CC 攻击耗尽你的 CPU,或者用 SQL 注入寻找漏洞。

而纯静态化意味着:

  • 没有数据库,没有 PHP: 黑客就算想黑,面对的也只是一堆 .html 和 .css 文件,无从下手。

  • 极致的加载速度: 配合 Cloudflare 的全球 CDN 节点,边缘直接返回 HTML,TTFB(首字节时间)快到飞起。

  • 真正的隐藏源站: 动态更新全在本地或隐蔽的内网服务器完成,对外暴露的只有 Cloudflare,源站 IP 永远不会泄露。

2. 第一步:分离动静环境,打造隐形源站

首先,我们需要一个“隐形”的 WordPress 源站来生产内容。这个源站不需要多高的配置,也不需要对外公开。

  1. 购买一台2H4G的服务器,安装好aapanel,然后随便用一个域名(任何二级域名都行,我是用的一个不对外公开的二级域名)搭建网站。

  2. 配置 Nginx 或安全组,仅允许你设置的白名单访问这台服务器的后台。

  3. 在这个源站上,你可以继续像往常一样使用WP,照常写文章、排版,甚至使用 AI 自动生成工具辅助创作。

3. 第二步:使用插件生成全站静态文件

在隐形源站中,我们需要将动态内容“固化”。推荐使用 Simply Static 或 WP2Static 插件。

  1. 在 WordPress 后台安装并激活 Simply Static。

  2. 进入插件设置,将 Delivery Method (交付方式) 设置为 Local Directory (本地目录) 或 ZIP Archive (ZIP压缩包)。

  3. 配置你的目标 URL(这里设置成网站对外公开的正式域名)。

  4. 点击 Generate Static Files,插件会自动爬取你网站的所有链接,将包括文章、图片、CSS/JS 文件在内的所有内容打包成纯静态的 HTML 结构。

PS:如果你的网站使用了动态表单或原生评论功能,静态化后这些功能会失效。建议将评论系统替换为 Waline、Twikoo 或 Disqus 等第三方纯前端托管方案。

4. 第三步:零成本部署至 Cloudflare Pages

拿到生成的静态文件或 ZIP 包后,最后一步就是将其推送到前端。

  1. 登录 Cloudflare 控制台,左侧导航栏找到 Workers & Pages。

  2. 点击 创建应用程序 (Create application) -> Pages -> 上传资产 (Upload assets)。

  3. 为你的项目起个名字,然后将刚才生成的静态文件夹(或 ZIP 包)直接拖拽上传。

  4. 等待几秒钟部署完成,Cloudflare 会为你分配一个 pages.dev 的免费域名。

  5. 在 自定义域 (Custom Domains) 设置中,绑定你自己的正式域名即可。

5. 进阶玩法:自动化构建的构想

目前这套方案在每次发布新文章时,还需要手动点击生成并上传。如果你也是个效率控,后续完全可以通过配置 Webhook,结合 n8n 等自动化工具来实现:WordPress 发布文章 -> 触发 n8n 抓取静态化打包 -> 调用 Cloudflare API 自动推送部署。实现全链路的无人值守。

总结

这套架构完全分离了网站的前后端,只要你后端不出问题,前端放在CF上面几乎是无敌的。但是基于CF国内访问的速度,做国内流量的老哥就只能用其他方案了。目前我用的是老K的服务器+CDN的方案,也就是把前端放在老K的服务器上面,然后套上他的CDN,这样兼顾了国内访问,也抗攻击。(要了解老K是谁请前往X站长交流群发送关键词“老K”)

问题

Q1:这套架构用于X站最适合做什么网站?

极度适合海外导航站,因为导航站不需要互动,网站做好以后放上去极度舒适顺滑。

Q2:我不想买服务器有其他方法吗?

有!直接本地(或者跳板机上面)搭建一个网站环境,做好的网站打包成静态上传到CF就可以了。

Q3:Cloudflare Pages是免费的吗?有没有流量限制?

目前我没有发现流量限制,也确实是免费的。唯一的问题是限制了网站文件数量不能超过2W和单个文件体积不能超过20MB,只要不超过这个限制是可以的。

Q4:我不用wordpress可以吗?

可以,除了wordpress其实还有很多其他的CMS选择,甚至可以直接叫ai手搓一个静态站点出来放上去,主要是看你的业务和网站方向。

Q5:这套架构最大的缺点是什么?

是无法动态交互,像我网站的VIP会员,付费查看等需要交互的功能完全失效,甚至评论区也不能留言。所以需要VIP会员制度的站点不适合。

原文链接:https://666bit.net/wordpress-static-cloudflare-pages-deployment.html,转载请注明出处。
显示验证码