搭建个人博客纪要
约 972 字大约 3 分钟
服务器搬家必备文章
整体思路

动静分离
- 博客页面、代码、HTML/CSS/JS 放在自己服务器
- 图片、资源、大文件全部放又拍云 CDN,不占用服务器带宽
域名严格分工
- 主站:A 记录 → 自己服务器
- 图床:CNAME → 第三方 CDN
证书分工明确
- 主站证书:1Panel 自动续期
- 图床证书:又拍云后台自动续期
全程自动化
- 写文章 → Git 提交 → 自动上线,无需手动传文件
购买腾讯云服务器,安装OnePanel面板
国内服务器必须备案才能使用 80/443 端口,这是硬性规定。
1、在云厂商买腾讯云轻量服务器,选择安装One Panel面板
2、one panel安装必备软件 openresty pureftpd,一个用来做服务转发的网关,一个用来支持静态代码的上传
进入【应用商店】安装两个核心组件,全部开启开机自启
OpenResty(增强版 Nginx):承载 Web 站点、反向代理、HTTPS 加密、HTTP 跳转规则,所有网站运行依赖。
Pure-FTPd:1Panel 虚拟 FTP 服务,支持每个网站创建独立隔离 FTP 账号。站点目录权限隔离,防止越权访问;完美适配 Github Actions 自动部署
3、设置防火墙端口:腾讯轻量云存在 两层防火墙,必须全部放行
- 腾讯云控制台防火墙(云厂商层)
- 1Panel 面板防火墙(服务器本地层)必须放行 TCP 端口
80HTTP443HTTPS21FTP 主动端口39000-40000FTP 被动端口段8090面板后台22ssh登录端口
重点坑点:
FTP 连接超时
ETIMEDOUT control socket99% 原因:被动端口段未放行
域名购买 + ICP 备案
腾讯云购买顶级域名 xxx.top
提交个人 ICP 备案
等待审核完成(3~7 天)
未备案域名,国内服务器无法正常使用 HTTPS 建站
域名解析配置:使用腾讯云DNS pod
解析方案
- 主站:xxx.top → A 记录 → 你的轻量云 IP
- 图床:pic.xxx.top → CNAME 记录 → 又拍云 Bucket 域名
核心概念区别
- A 记录:域名指向独立公网 IP。适用:自己服务器部署的网站
- CNAME 记录:域名指向另一个域名地址。适用:对象存储、CDN、第三方托管资源
如果 pic.xxx.top 使用 CNAME 指向又拍云:绝对不能在 1Panel 创建同名站点!
否则 Nginx 监听 443,流量乱窜,导致:ERR_SSL_VERSION_OR_CIPHER_MISMATCH 协议不匹配错误
OnePanel申请主站域名的自动续期SSL证书
仅对 主站 xxx.top 配置 SSL
配置流程
- 网站设置 → SSL 证书
- 选择 Let’s Encrypt 免费证书(先在腾讯云申请子账号,记住aksk,证书申请页选择腾讯云DNS账户)
- 开启 自动续期
- TLS 设置:
- 开启 TLS1.2 + TLS1.3
- 关闭 TLS1.0/1.1
- 加密套件:Mozilla 兼容模式
- 开启 HTTP 强制跳转 HTTPS
三者区别
- 域名解析:决定流量去哪里
- SSL 证书:决定通道是否加密可信
- HTTPS 配置:决定网站是否启用加密访问
又拍云申请图床域名的自动续期SSL证书
以下操作均在又拍云上
- 又拍云开通云存储功能
- 设置域名
- 申请图床域名的SSL证书,开启https配置,支持自动续期:
- 一键申请 Let’s Encrypt 证书
- 无需本地 1Panel、无需处理 DNS 验证、自动续期、不存在 CNAME 验证报错
- 开启白名单防盗刷
git自动部署流程
- onepanel配置网站,创建独立的ftp账号密码,强制开启https
- github项目自动部署流程配置ftp上传参数,自动传到腾讯云指定目录
- typora写博客,上传到github
