Cover: 早晨上课路经求是广场所见。 🎞 Lucky SHD400
不少同学都习惯使用 GitHub Pages 托管自己建造的静态博客网站,但是在国内访问速度会比较慢、可能遇到无法访问的情况。本文介绍如何将建造的网站同步到境内服务器,提高访问速度。
1. 准备工作
你需要准备:
- 一台境内服务器;
- 一个域名,切记需完成备案工作;
- 一个 GitHub Pages 站点,使用 Hugo、Jekyll、Hexo 生成的静态网站均可。
2. 配置服务器
2.1 安装 1Panel、rsync
笔者选用 1Panel 作为服务器管理面板,方便管理网站、数据库等服务。你也可以选择其他面板,如宝塔、VestaCP 等,或者直接通过命令行进行操作。
|
|
2.2 创建站点
使用生成的账号、密码,登陆 1Panel 面板。 第一次使用此面板请点击自动安装 OpenResty,所有选项保持默认即可;点击“创建网站”按钮,在顶部的网站类型中选择“静态网站”,填入网站域名并点击创建。
在 1Panel 的“网站”选项下打开“证书”标签页,申请证书后即可在网站设置页面使用证书开启 HTTPS 功能。
2.3 添加同步用账户
|
|
创建 ssh 密钥对时注意填写保存路径为 /home/deployuser/.ssh/id_rsa
,并通过下面一行命令将公钥内容添加到 /home/deployuser/.ssh/authorized_keys
文件中:
|
|
然后配置相关目录的访问权限:
|
|
此处最后一行网站保存路径可在 1Panel 面板中查看。
3. 配置 GitHub 仓库
3.1 编写 GitHub Actions 脚本
笔者的网站在每次将本地源代码 push 到 GitHub 后,将由 GitHub Actions 自动完成编译部署工作。向服务器推送编译好的静态网站,也可通过 GitHub Actions 自动完成。
在博客 repo 的根目录下,新建文件 .github/workflows/main.yml
,内容如下:
|
|
如果此前已使用 GitHub Actions 进行自动构建,则只需添加 Deploy to server
步骤即可。
3.2 配置 Secrets
在此仓库的 Secrets 中创建环境变量,位置为 Settings -> Secrets and variables -> Actions -> Manage repository secret
:
名称 | 内容 |
---|---|
SSH_IP | 服务器 IP 地址 |
SSH_PORT | SSH 端口号 |
SSH_USER | 服务器用户名,即刚刚创建的 deployuser |
SSH_PRIVATE_KEY | 私钥内容,即刚刚创建的/home/deployuser/.ssh/id_rsa |
注意:
remote_path
为服务器上网站的路径,在 1Panel 中,是网站存储目录下的index
子目录;path
一定要由/
结尾,代表将该目录下的内容(不包括该目录自身)同步。
保存并提交到 GitHub,即可自动触发同步功能。
4. 配置 DNS 分流
在域名的 DNS 设置中,将来自海外的流量指向 GitHub Pages 官方服务器,将境内流量指向自己的服务器。
注意:使用国内服务器请务必在网站底部添加备案号
将对应端口放开,此时在境内访问网站即解析道内地服务器上,完成加速。