Skip to content

Commit 6f3f53b

Browse files
校对博客内容
1 parent de5f992 commit 6f3f53b

File tree

1 file changed

+19
-20
lines changed

1 file changed

+19
-20
lines changed

blog/2025-8-30.md

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ description: GithubPage智能DNS解析
99

1010
好久不见,今天分享一下我的网站是如何做智能DNS解析的案例。
1111

12-
现在看到到这个网站被部署在一个github仓库,我域名解析指向了github,因此可以通过域名直接访问这个网站。
12+
现在看到这个网站被部署在一个 GitHub 仓库,我域名解析指向了 GitHub,因此可以通过域名直接访问这个网站。
1313

1414
但是目前在中国大陆访问比较慢,于是我采购了一台中国大陆的服务器。目标:
15-
- 在大陆的IP地址访问,解析到大陆服务器。
16-
- 在境外访问,解析到github
15+
- 在大陆的 IP 地址访问,解析到大陆服务器。
16+
- 在境外访问,解析到 GitHub
1717

18-
项目原本的增量更新逻辑不变:即通过`githubworkflow`,每次变更自动更新不一致的文件。
18+
项目原本的增量更新逻辑不变:即通过 `GitHub Actions`,每次变更自动更新不一致的文件。
1919

20-
实现这个需求的关键在于使用**智能DNS解析**也就是根据访问者的地理位置将域名解析到不同的IP地址
20+
实现这个需求的关键在于使用**智能DNS解析**也就是根据访问者的地理位置将域名解析到不同的 IP 地址
2121

2222
## 域名解析修改
2323

24-
在阿里云服务选择`云解析 DNS`。相关配置如下:
24+
在阿里云服务选择`云解析 DNS`。相关配置如下
2525

2626
| 主机记录 | 记录类型 | 解析线路 | 记录值 |
2727
|----------|----------|----------|--------|
@@ -32,22 +32,22 @@ description: GithubPage智能DNS解析
3232

3333
## 服务器配置
3434

35-
在服务器上,需要部署一个**Web服务器**如Nginx或Apache),并配置它来服务项目静态文件。大部分服务器都是开箱既有。我用的宝塔面板,添加`PHP项目`,简单的配置了一下域名和`SSL`证书。找到项目指向的文件夹`/www/wwwroot/jiangmiemie.com`后续将Github生成的静态资源传输到这里即可
35+
在服务器上,需要部署一个**Web服务器**如 Nginx 或 Apache),并配置它来服务项目静态文件。大部分服务器都是开箱即有。我使用的是宝塔面板,添加`PHP项目`,简单的配置了一下域名和`SSL`证书。找到项目指向的文件夹`/www/wwwroot/jiangmiemie.com`后续将 GitHub 生成的静态资源传输到这里即可
3636

37-
如何将项目文件**同步**到这台服务器上。这里计划使用`rsync`增量同步,使用`ssh`链接
37+
如何将项目文件**同步**到这台服务器上。这里计划使用`rsync`增量同步使用`ssh`链接。
3838

3939
### rsync
4040

4141
`rsync``scp` 更适合同步大量文件,因为它可以只传输有变化的部分。
4242

43-
我的这台服务器是阿里云系统(不是Ubuntu),需要使用`yum install -y rsync`安装一下
43+
我的这台服务器是阿里云系统(不是 Ubuntu),需要使用命令`yum install -y rsync`进行安装
4444

4545
### ssh
4646

47-
需要打开的防火墙端口`22``80``443`
47+
需要在防火墙中打开的端口`22``80``443`
4848

4949
:::info
50-
虽然我们可以直接通过账号密码登录ssh,但是账号密码权限太高,因此设置一个仅用于登录的ssh密码
50+
虽然我们可以直接通过账号密码登录 ssh,但是账号密码权限太高,因此设置一个仅用于部署的 ssh 密钥
5151
:::
5252

5353
```bash showLineNumbers
@@ -75,22 +75,22 @@ ssh -i ~/.ssh/github_deploy_key root@localhost
7575
cat ~/.ssh/github_deploy_key
7676
```
7777

78-
## GitHub Workflow修改
78+
## GitHub Workflow 修改
7979

80-
完整内容如下,变更的内容为`Setup SSH``Deploy to server`
80+
完整配置如下,主要变更内容为`Setup SSH``Deploy to server`
8181

82-
因为`GitHub Workflow`是所有人都能看到的,因此为了安全,你需要把服务器IP地址、链接密码等配置为密钥变量。下面代码中`${{ secrets.SSH_PRIVATE_KEY }}`这样格式的都是密钥变量。
82+
因为`GitHub Actions`是所有人都能看到的,因此为了安全,你需要把服务器 IP 地址、连接信息等配置为密钥变量。下面代码中`${{ secrets.SSH_PRIVATE_KEY }}`这样格式的都是密钥变量。
8383

84-
把你的ip地址和刚刚终端显示的`私钥`复制到GitHub Secrets。
84+
把你的 IP 地址和刚刚终端显示的`私钥`复制到 GitHub Secrets。
8585

8686
:::info
87-
在你的GitHub仓库页面,进入 `Settings` -> `Secrets and variables` -> `Actions`
87+
在你的 GitHub 仓库页面,进入 `Settings` -> `Secrets and variables` -> `Actions`
8888

8989
点击 `New repository secret`
9090

9191
Name 填写一个有意义的名称,比如我设置的是`SSH_PRIVATE_KEY``IP`
9292

93-
- `IP`的 Secret 框中,仅粘贴你的ip地址。例如:`192.168.10.11`
93+
- `IP`的 Secret 框中,仅粘贴你的 IP 地址。例如:`192.168.10.11`
9494

9595
- `SSH_PRIVATE_KEY`的 Secret 框中,粘贴从`-----BEGIN OPENSSH PRIVATE KEY-----``-----END OPENSSH PRIVATE KEY-----`完整内容。
9696

@@ -136,19 +136,18 @@ jobs:
136136

137137
表示将服务器的公钥添加到 known_hosts 文件中。
138138

139-
140139
- `rsync -avz --exclude='.user.ini' ./build/ root@${{ secrets.IP }}:/www/wwwroot/jiangmiemie.com`
141140

142141
表示将`./build/`文件夹同步到`/www/wwwroot/jiangmiemie.com`文件夹。
143142

144143
| 参数 | 作用 | 详细说明 |
145144
|------|------|----------|
146-
| `rsync` | 远程同步工具 | 比scp更智能,只传输变化的部分 |
145+
| `rsync` | 远程同步工具 | 比 scp 更智能,只传输变化的部分 |
147146
| `-a` | 归档模式 | 保留文件权限、时间戳、符号链接等所有属性 |
148147
| `-v` | 详细输出 | 显示传输过程的详细信息 |
149148
| `-z` | 压缩传输 | 传输时压缩数据,减少网络带宽 |
150149
| `--exclude='.user.ini'` | 排除文件 | 跳过服务器自动生成的系统文件 |
151150
| `./build/` | 源目录 | 本地构建好的静态文件目录 |
152151
| `root@IP:/path/` | 目标地址 | 服务器上的部署目录 |
153152

154-
每次你推送代码到GitHub,工作流会自动构建并将变化同步到服务器,实现真正的**持续部署**
153+
每次你推送代码到 GitHub,工作流会自动构建并将变化同步到服务器,一次修改,处处生效

0 commit comments

Comments
 (0)