posts: 将新文章从Notion转为原生,并且新增了诸多有效内容!推荐看看!

添加关于网站分流的详细配置文档,包括各CDN SSL申请方案、源站类型选择、客户端实现和注意事项等内容
This commit is contained in:
二叉树树
2026-01-12 18:19:45 +08:00
parent 53857d780c
commit d64ffb1fd9
21 changed files with 67 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -6,5 +6,70 @@ image: ../assets/images/fenliu.png
draft: false draft: false
lang: "" lang: ""
--- ---
# 👇Click the link read more... # 需分流的网站
::url{href="https://acofork.notion.site/2e51e011d4e5800788f7cced97372cf1"} 博客本体,主站
::url{href="https://blog.acofork.com"}
Umami用于在网站插入一个JS来进行访客统计以及展示访客信息
::url{href="https://umami.acofork.com/share/CdkXbGgZr6ECKOyK"}
静态随机图用于置顶文章Cover和整个网站的背景图
::url{href="https://pic.acofork.com"}
# 各CDN SSL申请方案
### EdgeOne
由于NS直接在EdgeOne故直接申请
![](../assets/images/fenliu-1.png)
### ESA
使用DCV委派
![](../assets/images/fenliu-2.png)
### Cloudflare
使用HTTP验证由于ACME验证节点在国外所以它只会看到CNAME到Cloudflare的记录从而签发SSL
![](../assets/images/fenliu-3.png)
# 源站类型
### 静态型
国内使用对应CDN的Page业务海外使用Cloudflare Worker。至于为什么不将 `blog.acofork.com` 也放在EdgeOne Page一是因为EdgeOne CDN和Page的WAF规则是分开的而Page业务的WAF规则不是很好做海外封锁二是因为EO在之前被打的时候将这个子域封了。而ESA Page可以很简单做到海外封禁
![](../assets/images/fenliu-4.png)
![](../assets/images/fenliu-5.png)
![](../assets/images/fenliu-16.png)
### 动态型
国内使用IPv6回源用户 - IPv4 - EO/ESA CDN - IPv6 - 源站。至于为什么不用ESA是因为ESA CDN回源非标端口需要像Cloudflare一样写一条回源规则占用免费规则集5条中的其中之一
![](../assets/images/fenliu-6.png)
海外采用Cloudflare Tunnel用户 - IPv4 - CF CDN - 内部连接 - 源站)
![](../assets/images/fenliu-7.png)
# 浏览器客户端实现监看当前访问节点
利用浏览器JavaScript发送HEAD请求拿取对端响应头Server字段并回显若跨域则需要设置 **Access-Control-Expose-Headers** 响应头,值为 **server**
![](../assets/images/fenliu-12.png)
![](../assets/images/ae6f93ce318fa428e94256c2b4a501e1.png)
# 注意事项
- ESA Page对超多资源和大文件支持很差。例如静态随机图项目无法部署到ESA Page超出了2000个静态资产
- ESA CDN针对于回源非标端口和Cloudflare一样要通过写回源规则实现很浪费规则推荐使用EdgeOne CDN可以随意指定回源端口
![](../assets/images/fenliu-8.png)
- 如果你要做分流业务必须将域名NS托管在国内的DNS解析服务商因为Cloudflare不支持域名分流解析并且请将默认解析给CF将境内解析给国内节点不要反着来
![](../assets/images/fenliu-9.png)
- 分流的原理是DNS看查询的源IP如果是国内则返回国内节点海外则返回海外。也就是说你的出口IP决定访问的节点若你开梯子如美国就算你在国内访问到的也是海外节点
- DCV委派只能写一条如果你的NS在EO可以写DCV给ESA而Cloudflare使用HTTP验证这一切都将是一劳永逸全自动化的
- Cloudflare SaaS 在接入外部域名时,非常建议选择 HTTP验证来签发SSL下文会详细说明该验证模式的好处。我们都知道Cloudflare SaaS 在创建的时候对于申请SSL默认选项是 TXT验证但是该方式并不好我们都知道使用TXT验证的确可以签发证书但在3月后上一个SSL证书过期后我们需要及时更新TXT记录来重新申领新的SSL证书但是HTTP验证就不是这样了Cloudflare CDN会自动在边缘节点放上HTTP验证的文件并且Cloudflare可以随时更改这样你就不需要在申领新SSL的时候做任何事情了一切都由Cloudflare自动实现
- Cloudflare SaaS接入外部域名后对于该外部域名是可以享有所有Cloudflare单域名下服务也包括Cloudflare Worker参见 [Cloudflare Worker 优选](/posts/cf-fastip/#%E9%92%88%E5%AF%B9%E4%BA%8Ecloudflare-workers/))。也可以配置规则等业务,你最终访问的是哪个域名就写哪个主机名,不要写回退源的主机名,除非你想让该规则仅在直接访问回退源时生效
![](../assets/images/fenliu-11.png)
![](../assets/images/fenliu-10.png)
- Cloudflare Tunnel实际上是可以自定义生效的域名的并非仅局限于账户内域名虽然你在控制台看着是这样我们可以通过抓包更改请求体来实现各种各样的域名它没有验证详见[Cloudflare Tunnel 优选](/posts/cf-fastip/#%E9%92%88%E5%AF%B9%E4%BA%8Ecloudflare-tunnelzerotrust/)
![](../assets/images/fenliu-13.png)
- 分流做完后一定要针对国内节点启用封锁海外模式这能大大降低被DDoS致使CDN商给你域名取消接入的概率。Cloudflare随你因为打不死如果你的源站Hold不住也请配置点策略。因为刷子DDoS发起者可以通过强行绑定域名和IP来通过便宜量大的海外IP来攻击你脆弱的国内节点如果什么防护都不做很可能被刷几个TB的异常流量然后被CDN取消接入
![](../assets/images/fenliu-14.png)
![](../assets/images/fenliu-15.png)
# 成果展示
### 博客本体
![](../assets/images/https___blog.acofork.com__多地区多线路HTTP测速%20(1).png)
### Umami
![](../assets/images/https___umami.acofork.com__多地区多线路HTTP测速.png)
### 随机图
![](../assets/images/https___pic.acofork.com__多地区多线路HTTP测速.png)