🛡️

身份验证

答对题目即可进入,验证你是谁

剩余尝试次数:3

建站日志:从零到上线,一个个人网站的诞生

记录花 5 个小时,从买域名、租服务器到搭建 Astro 博客的全过程。

背景

大一快结束了,想搭个个人网站。用途三个:

买了腾讯云香港服务器(2C2G,半年 ¥168)和域名 eaglecoder.cn(3 年 ¥100),开干。

技术选型

选型理由
框架Astro静态生成,Markdown 写内容,默认零 JS
样式Tailwind CSS 4业界主流,学了不亏
服务器Ubuntu 24.04 + Nginx稳定
面板宝塔第一次搞服务器,图形界面省心
部署GitHub Actions / cron推送自动更新
评论Giscus(待配置)免费,基于 GitHub Discussions

过程

1. 买域名和服务器

腾讯云双十一(?)活动,香港轻量服务器半年 ¥168,域名 3 年 ¥100。备案不需要,买了就能用。

2. 初始化 Astro 项目

用了 Astro 6 + Tailwind CSS 4。踩了一个坑:Astro v6 的 content collection API 变了,config.ts 要放 src/content.config.ts,且要用 loader 语法。翻文档解决了。

网站结构:

/src
  /content          ← Markdown 文件存这里
    /posts          ← 博客文章
    /projects       ← 项目展示
    /docs           ← 文档存档
  /pages            ← 页面路由
  /components       ← 复用组件
  /layouts          ← 页面布局

3. 服务器装宝塔

一条命令的事。装完在腾讯云防火墙放行 22844(宝塔面板)、80(HTTP)、443(HTTPS)。

4. 配置 Nginx + SSL

宝塔里建站,绑定域名,一键申请 Let’s Encrypt 证书。把本地的 dist/ 文件拖上去,网站就亮了。

5. 自动部署

折腾了两小时。GitHub Actions 的 easingthemes/ssh-deploy Action 有 libcrypto 兼容问题,换了三种密钥格式(OpenSSH → RSA PEM → PKCS8)才解决。

最后又发现 GitHub Actions 的海外 IP 连不到香港服务器。换了个方案:

不是最优方案,但跑得挺好。

6. 安全加固

刚装完就收到腾讯云告警——美国 IP 在扫 root 登录。把 SSH 端口从 22 改到 22222,瞬间清净了。

踩过的坑

  1. Astro v6 content loader 语法:旧版 type: 'content' 不兼容,得用 loader: glob()
  2. SSH 密钥格式easingthemes/ssh-deploy 认 PKCS8,不认 OpenSSH
  3. Git 远程 URL:有个全局 url.insteadof 配置把 SSH 转成了 HTTPS,push 一直失败
  4. Shell 换行:宝塔终端复制命令经常被换行截断,后来用文件管理器手动编辑更稳

花费

项目费用
域名(3年)¥100
服务器(半年)¥168
总计¥268

后续


这个网站本身就是我的第一个展示项目。以后回头看这篇日志,都是起点 🚀

评论