go to index

个人博客网站搭建经验及踩坑记录

read time 13 min read
心理路程 教程

一、搭建初心与技术选型:为何选择 Astro 架构?

1.1 从需求出发的架构考量

作为内容驱动的个人博客,核心需求聚焦于三点:极致的加载速度友好的 SEO 表现以及轻量化的维护成本。对比多款框架后,最终锁定 Astro 架构,其核心优势恰好契合需求:

  • 服务器优先渲染:将页面预先转换为纯 HTML,默认零 JS 输出,仅对交互组件加载必要脚本,避免传统框架的冗余资源负担。
  • 岛屿架构设计:页面主体为静态 “海洋”,仅交互区域(如评论区、计数器)作为动态 “岛屿” 加载,兼顾性能与交互体验。
  • 多框架兼容与内容友好:支持 Markdown 原生解析,可混合使用 React、Vue 等组件,完美适配博客的内容创作与轻量交互需求。

1.2 备选方案对比与取舍

框架 / 方案核心优势适配短板放弃原因
React SPA交互能力强JS 负载高,首屏慢,SEO 差不符合博客内容优先需求
Next.js全栈开发支持底层依赖 React,冗余 JS 多性能优化成本高于收益
Hexo轻量易上手扩展能力弱,交互实现复杂长期维护灵活性不足

二、第一阶段:GitHub Pages 代理部署(零成本起步)

2.1 部署准备与核心工具

  • 代码托管与部署平台:GitHub(需先注册账号并创建代码仓库)
  • 核心部署工具:Astro 官方 GitHub Action(自动化构建部署)
  • 辅助工具:Git(代码版本控制)、VS Code(代码编辑)

2.2 部署步骤实操指南

  1. 本地项目初始化:确保安装 Node.js 后,运行 npm create astro@latest 初始化 Astro 项目,按提示配置项目名称、模板等信息。
  2. 代码推送到 GitHub:通过 Git 命令将本地项目关联 GitHub 仓库并推送代码(git add .git commit -m "init blog"git push)。
  3. 配置自动部署:在项目根目录创建 .github/workflows/deploy.yml 文件,粘贴 Astro 官方部署配置(可参考 Astro GitHub Pages 部署文档),配置完成后提交代码即可触发自动构建。
  4. 访问验证:部署完成后,通过 用户名.github.io/仓库名 访问博客,首次部署需等待 1-5 分钟构建生效。

2.3 踩坑记录与解决方案

问题现象本质原因解决方法
部署后样式丢失资源路径配置错误astro.config.mjs 中设置 base: '/仓库名/'
自动部署触发失败Action 权限不足在仓库 Settings → Actions → General 开启工作流权限
国内访问速度慢服务器节点在海外可搭配 Cloudflare 免费 CDN 加速(需额外配置域名)

三、第二阶段:阿里云服务器 + 域名部署(专业级升级)

3.1 升级动因:从 “能用” 到 “好用” 的进阶

GitHub Pages 虽满足零成本起步,但存在难以规避的局限:国内访问延迟高(平均加载 3-5 秒)、无法绑定备案域名实现品牌化访问、功能扩展受限(如无法部署后端服务)。因此决定升级至阿里云生态,实现 “独立域名 + 国内服务器” 的专业部署。

3.2 核心平台与工具选型(附官方链接)

工具 / 服务核心用途官方链接
阿里云 ECS 服务器部署静态网站的核心服务器https://www.aliyun.com/product/ecs
阿里云域名服务注册 / 管理独立域名https://wanwang.aliyun.com/domain/
Nginx服务器网页服务与反向代理http://nginx.org/
FileZilla本地与服务器文件传输https://filezilla-project.org/

3.3 部署流程分步实操

第一步:服务器与域名准备

  1. 购买阿里云 EC2 服务器:推荐选择 2 核 2G 入门配置(个人博客足够使用),操作系统优先选 CentOS 7/8。
  2. 注册域名:在阿里云域名服务中搜索并购买心仪域名,注意选择未被注册且符合备案规则的名称(不可含敏感词汇)。
  3. 服务器远程连接:通过阿里云控制台的 “远程连接” 功能,或使用 PuTTY、Xshell 等工具登录服务器。

第二步:服务器环境配置

  1. 安装 Nginx:执行命令 yum install nginx -y 完成安装,随后启动服务 systemctl start nginx 并设置开机自启 systemctl enable nginx

  2. 配置网站根目录:创建 /var/www/blog 目录作为网站根目录,执行 chmod 755 /var/www/blog 配置权限。

  3. 修改 Nginx 配置:编辑

    plaintext
    /etc/nginx/conf.d/blog.conf
    

    文件,配置内容如下(替换域名与目录路径):

    nginx
    server {
        listen 80;
        server_name 你的域名.com; # 替换为实际域名
        root /var/www/blog;
        index index.html index.htm;
        
        # 解决 Astro 路由刷新 404 问题
        location / {
            try_files $uri $uri/ /index.html;
        }
    }
    
  4. 验证 Nginx 配置:执行 nginx -t 检查配置合法性,无错误则执行 nginx -s reload 生效配置。

第三步:Astro 项目部署

  1. 本地构建静态文件:在本地项目根目录运行 npm run build,生成的 dist 文件夹即为可部署的静态资源。
  2. 上传文件到服务器:通过 FileZilla 连接服务器,将 dist 文件夹内的所有文件上传至 /var/www/blog 目录。
  3. 访问验证:在浏览器输入服务器公网 IP,若能正常显示博客页面,则部署成功。

四、关键环节:国内网站备案完整流程(2025 最新版)

4.1 备案前必备条件

  • 已购买阿里云国内服务器(需包年包月,按量付费实例不可备案)。
  • 已注册域名并完成实名认证(域名所有者需与备案主体一致)。
  • 准备好备案材料:个人备案需身份证正反面照片、人脸识别;企业备案需额外准备营业执照、法人信息。

4.2 备案全流程分步指南(以阿里云为例)

  1. 开启备案系统:登录 阿里云备案控制台,点击 “开始备案”,选择 “个人备案” 或 “企业备案”。
  2. 填写主体信息:如实填写姓名 / 企业名称、身份证号 / 统一社会信用代码、联系地址等信息,确保与证件一致。
  3. 添加网站信息:填写网站名称(不可含 “官网"" 论坛 “等敏感词,建议用”XXX 的个人博客 “格式)、网站服务内容(选择” 个人日记 / 文章 ”)。
  4. 上传备案材料:按提示上传身份证正反面照片(需清晰无反光),并完成阿里云 APP 内的人脸识别验证。
  5. 阿里云初审:工作人员会在 1-2 个工作日内审核材料,若有问题会通过短信 / 邮件通知修改,审核通过后提交至管局。
  6. 管局终审:各地通信管理局审核周期为 3-20 个工作日(通常 7-10 天),审核进度可在备案控制台查看。
  7. 备案完成:管局审核通过后,会通过短信发送备案号(如 “粤 ICP 备 XXXXXXXX 号”),需在网站底部添加备案号并链接至工信部备案平台。

4.3 备案踩坑与避坑指南

  • 坑点 1:网站名称被驳回原因:使用 “博客” 以外的敏感词汇(如 “平台"" 资讯 ”)。解决:直接用 “XX 的个人博客” 格式,通过率 100%。
  • 坑点 2:地址填写不规范原因:联系地址未精确到门牌号。解决:按身份证地址完整填写,农村地址可补充 “XX 村 XX 号”。
  • 坑点 3:人脸识别失败原因:光线不足或拍摄角度偏差。解决:在光线充足的室内,正对摄像头缓慢完成眨眼、转头动作。

五、收尾优化与长期维护:提升博客体验的关键技巧

5.1 性能优化:让加载速度再快一步

  1. Astro 内置优化:在 astro.config.mjs 中开启图片优化(image: { service: astroImageService() }),自动压缩图片资源。

  2. 缓存配置

    :在 Nginx 配置中添加缓存规则,减少重复资源请求:

    nginx
    location ~* \.(js|css|png|jpg|jpeg|gif)$ {
        expires 7d; # 设置7天缓存
        add_header Cache-Control "public, max-age=604800";
    }
    
  3. CDN 加速:接入阿里云 CDN 服务,将静态资源分发至全国节点,国内访问延迟可降至 100ms 以内。

5.2 安全防护:基础安全配置不可少

  • 开启服务器防火墙:仅开放 80(HTTP)、443(HTTPS)、22(SSH)端口。
  • 配置 HTTPS:通过阿里云 SSL 证书服务 申请免费证书,在 Nginx 中配置后实现 HTTPS 访问。
  • 定期备份:每周通过 tar -zcvf blog_backup.tar.gz /var/www/blog 备份网站文件,并下载至本地存储。

5.3 内容维护:高效更新与管理

  • 采用 Markdown 撰写文章:直接在 src/content/posts 目录添加 .md 文件,Astro 自动生成文章页面。
  • 安装 Astro 插件:通过 @astrojs/rss 插件生成 RSS 订阅,astro-icon 插件添加图标支持,丰富博客功能。

六、总结:从 0 到 1 搭建的核心感悟

个人博客的搭建过程,本质是 “需求匹配技术” 的迭代之旅:从 GitHub Pages 的零成本试水,到阿里云生态的专业升级,每一步选择都围绕 “内容呈现” 与 “访问体验” 的核心需求。

对于新手而言,无需追求一步到位:可以先通过 GitHub Pages 熟悉 Astro 架构与部署流程,待内容积累到一定程度后,再升级服务器与备案域名。关键在于动手实践 ——Astro 的轻量化特性与阿里云的完善文档,已经为个人开发者降低了极高的入门门槛。

希望这份经验能帮你少走弯路,早日拥有属于自己的独立博客!