资源加载中...

跳转到内容
返回

利用Cloudflare低成本搭建属于你自己的博客

发布:
字数:
2375
阅读时长:
10 分钟

前言

很多人都有想要搭建属于自己的小站(包括我),在这个过程中前前后后走了很多弯路终于成功,于是有了写一篇文章帮助抱着同样愿望的人的想法,本文主要通过0成本(理论上只有域名需要付费)的静态站点的方式教你如何成功搭建网站,希望这篇文章对在屏幕前的你有帮助。(❁´◡`❁)

一、服务器选择说明

本站采用 Cloudflare Pages(现Cloudflare Workers) 进行静态站点托管。相较于传统云服务器和部署方式,它具备以下优势:

  • 0成本:Cloudflare Pages是免费的,免费计划的每个请求最多占用 10 毫秒 CPU 时间,每天最多 100,000 (UTC+0);如果有需求也可以购买付费计划,对比如下图; 计划对比
  • 部署方式多样:你可以在本地build后通过网页上传部署站点(本站采用),也可以将你的页面项目上传至GitHub,通过链接GitHub仓库部署;好处是可以直接在编辑器里上传仓库,Cloudflare会同步更新;
  • 全球解析:Cloudflare在世界各国主要城市都有服务器,基本上不管在哪个国家均可正常解析且加载速度快;
  • 安全性高:Cloudflare Page有免费的保护计划,同时证书和连接协议等问题均可通过自动化完成,避免了部署的繁琐。

二、详细操作步骤

1. 域名购买

想要搭建网站,我们得首先有个自己的域名。本站的域名购买自阿里云万网,新用户第一年1元,同时还有低价且不错的域名可以购买,根据你的喜好挑选域名即可。另外还有其他各种各样的域名提供商,哪个实惠服务好就选哪个。

ℹ️ INFO

如果你不想购买域名,也可以使用CloudFlare Pages提供的免费域名。

  1. 登录 阿里云万网,选择喜欢的域名前缀和域名;
  2. 配置购买年限,并提供域名持有者的实名信息以完成支付:
    • 购买年限:选择注册时长,可选1-10年;
    • 信息模板:须为电子邮箱已验证、模板状态实名成功,这里购买时会提示要实名,按照提示操作即可。
📝 NOTE

信息模板用于记录域名持有者(个人或组织)的身份信息。根据 ICANN 及各注册局要求,所有域名都必须关联一个通过实名认证的信息模板。
如果您尚未创建信息模板,可以在此步骤中点击新建信息模板,按照引导在线创建并提交实名认证资料。

ℹ️ INFO

来自万网官方Docs:支付成功不等于注册成功。
完成支付仅代表您的注册请求已成功提交至阿里云。系统将随后向顶级域名注册局发送指令。部分域名(特别是 .cn 等国家代码顶级域名)需要经过命名审核或资质审核,此过程可能需要1-3个工作日。只有当域名状态最终变为 “正常” 时,才代表注册彻底成功。

  1. 如果在你的阿里云域名控制台域名列表页面,域名状态显示为正常,则代表域名注册成功可正常使用,可进行下一步备案、域名解析等操作。
    如下图所示:
    域名状态检查
❗ IMPORTANT

注册成功后的关键后续步骤:

  • 设置域名解析:域名注册后,需通过设置解析将域名指向服务器的 IP 地址,用户才能通过该域名访问网站或应用。请在域名列表中点击 解析,添加 A 记录或其他类型的解析记录,详情参见《添加网站解析》,但由于这里使用CloudFlare进行托管,所以此处跳过。
  • 进行ICP备案:(这里仅限中国内地网站)完成 ICP 备案:根据中国内地法律法规,任何在中国内地提供服务的网站都必须先完成 ICP 备案才能上线。如果你的域名所连接的服务器地址包括公网地址在国内,则需要进行备案;反之,则此项可忽略,不过这里还是建议进行备案,即使CloudFlare的解析服务器在国外,如果觉得麻烦或者不想备案的(服务器在境外的情况下),也可以选择不备案。如果你想在阿里云OSS等国内的服务商进行托管,由于服务器在国内,请务必进行备案!!!

2. 选择合适的框架

现如今静态网页的框架已经百花齐放,有许多可以选择(如Hexo和Astro Paper),这里以本站使用的框架——Aero Paper演示。
Aero Paper是由Astro Paper进行定制而来的开源项目,添加了一些新的功能和特性,且对中文支持友好等。

hazuki-keatsu
/
aero-paper
Waiting for api.github.com...
00K
0K
0K
Waiting...

3. 克隆仓库

  1. 要克隆仓库,首先需要安装Git,安装操作详见官方文档
    选择一个合适的位置新建文件夹,在新打开的文件夹中右键点击“在终端中打开”,输入以下指令:
    克隆仓库指令:
git clone https://github.com/hazuki-keatsu/aero-paper.git
cd aero-paper

克隆仓库

  1. 安装Node.js
    根据官网下载对应系统的版本安装即可,安装过程所有配置选择默认配置。

  2. 安装依赖(pnpm和依赖):

npm install -g pnpm
pnpm install

安装pnpm) 安装依赖 安装依赖

  1. 启动开发模式:
pnpm run dev

在浏览器中打开 http://localhost:4321 查看实时页面结果。 启动开发模式

❗ IMPORTANT

如果执行pnpm run dev出现报错,请重新执行npm install -g pnpmpnpm install

4. 进行配置修改

框架结构大致如下:

├── public/                # 静态资源
│   ├── favicon.svg        
│   ├── profile_picture.jpg
│   └── assets/            # 图片资源
├── src/
│   ├── assets/            # 项目资源
│   │   ├── fonts/         # 自定义字体 (Yozai)
│   │   ├── icons/         # SVG 图标
│   │   └── images/        # 图片资源
│   │       └── backgrounds/ # 背景图片
│   ├── components/        # 组件
│   │   ├── PageContainer.astro  # 统一页面容器
│   │   ├── Header.astro
│   │   ├── Footer.astro
│   │   └── ...
│   ├── data/blog/         # 博客文章 (Markdown)
│   ├── layouts/           # 页面布局
│   ├── pages/             # 路由页面
│   ├── styles/            # 样式文件
│   │   ├── global.css     # 全局样式 + 背景效果
│   │   └── typography.css # 排版样式
│   └── utils/             # 工具函数
├── astro.config.ts        # Astro 配置
└── src/config.ts          # 站点配置
  1. public中,存放着网站图标、关于页的头像和音乐播放器的音乐文件等
  2. src/assets中,你可以自定义字体、添加SVG图标(添加后如要使用需要在constants.ts中import),更改背景图片等
  3. src/components中,是存放组件的位置,在此文件夹的Footer.astro中,可以更改页面的页脚信息部分
  4. src/data/blog中,是存放文章的位置。
  5. src/pages中,有about.md,可以修改关于页
  6. src/styles是存放各种效果配置的文件夹,可以通过修改css文件自定义页面效果。

更多配置请参考Astro Docs

5.本地构建

博客文件需先在本地构建(如使用 Astro、Hexo 等框架生成 dist 目录),再上传到CloudFlare Page容器。
在框架页根目录,右键“在终端中打开”,输入以下命令:

pnpm run build

等待一会后,如果显示[build] Complete!(如下图所示),代表已经构建完成,如果出现错误,请排查所有的配置文件是否出错。 构建完成提示 构建完成后根目录会出现dist文件夹,这是构建完成的页面和资源,等一下要用到。

6. 创建CloudFlare账号和CloudFlare Pages容器

  1. 创建CloudFlare账号
    访问CloudFlare账号注册页,进行注册。
    注册完成后登录,进入Cloudflare仪表盘, 仪表盘页面

  2. 添加域:

❗ IMPORTANT

如果选择使用CloudFlare Pages提供的免费域名,则跳过此步骤,直接到第3步。

在账户主页点击加入域,输入之前注册的域名,按下图配置: 添加域 随后选择免费计划,点击继续。
接下来在后续的页面会提示你添加Cloudflare 名称服务器,复制它提供的两个DNS地址添加域 回到阿里云域名控制台,点击管理,随后点击在左侧的DNS管理中的DNS修改,点击修改DNS服务器,将刚刚复制的CloudFlare名称服务器的地址粘贴修改到此处,修改完成后点击确定,随后在当前DNS服务器上方点击同步。
修改完成后回到CloudFlare页面,点击继续,会到等待激活页面,直接点击继续概览即可。
随后你的域名会显示待处理的名称服务器更新,不用管它,在DNS解析修改正确情况下,一段时间过后会自动更新DNS配置。

❗ IMPORTANT

更新DNS配置成功后,在DNS记录页中会显示代理状态为已代理,这个时候就说明修改成功了。

确认DNS配置更新成功 3. 创建CloudFlare Page容器
账户主界面,点击左栏的计算(Workers),在Workers和Pages页面中,点击右上角的创建应用程序创建容器 选择Pages或者Works,选择拖放文件,在随后的页面里输入你的项目名称。

❗ IMPORTANT

此名称将用于在 pages.dev 上生成永久主机名。和最后生成的免费域名是有关联的,比如本站的免费域名是tothestars-dtm.pages.dev,通过这个域名也可以访问到博客页面。

随后将刚刚生成的dist文件夹拖放上传或选择上传,上传完成后点击部署站点即可。
Workers和Pages页面中,点击到刚刚创建的项目,随后点击进入到自定义域二级页面中,在此输入设定购买的域名,随后按照提示配置DNS即可。随后设定的自定义域如果显示活动,则添加成功。 验证活动状态

三、验证部署结果

完成以上所有步骤后,打开浏览器,输入你的自定义域名(如 https://tothestars.wang/),若能正常显示博客首页,且点击链接无 404 错误,则说明部署成功。

若遇到问题,可优先排查以下点:

  • 阿里云域名控制台中的DNS是否修改成功;
  • 自定义域名的 CNAME 解析是否生效/代理状态是否为已代理;
  • 上传的文件是否完整。

在以下平台分享这篇帖子: