自己实现 github pages 的思路

本文探讨了 GitHub Pages 的工作原理,通过分析不同用户的博客可能共享同一 IP,揭示了通过 Host 字段区分用户请求的机制。利用 Nginx 配置模拟不同 host 访问不同内容,并解释了 CNAME 功能的实现,总结了实现类似 GitHub Pages 服务的思路,包括 Git 钩子、Nginx 配置和动态更新。
摘要由CSDN通过智能技术生成

从 2020 年开始,我一直通过 github pages + CDN 加速 的方案维持着自己的博客,效果还可以,只要 CDN 中有缓存,网站可以说是秒开。

这个时候就有些思考了,github pages 到底是怎么设计的,可以在一台机器上维持着这么多人的博客?难道它有那么多域名给每个人用嘛?

不同用户的博客指向的是同一台服务器吗

通过 ping 两个不同用户的 github pages,我们可以发现,其实很多用户之间可能是共享同一个公网 IP 的,效果如下:

mcoder@Chaoqun-PC:~/workspace/my_doc/blog$ ping mcoder2014.github.io -c 4
PING mcoder2014.github.io (185.199.109.153) 56(84) bytes of data.
64 bytes from 185.199.109.153 (185.199.109.153): icmp_seq=1 ttl=51 time=69.8 ms
64 bytes from 185.199.109.153 (185.199.109.153): icmp_seq=2 ttl=51 time=75.6 ms
64 bytes from 185.199.109.153 (185.199.109.153): icmp_seq=3 ttl=51 time=67.4 ms
64 bytes from 185.199.109.153 (185.199.109.153): icmp_seq=4 ttl=51 time=67.4 ms

--- mcoder2014.github.io ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 67.430/70.097/75.604/3.332 ms

mcoder@Chaoqun-PC:~/workspace/my_doc/blog$ ping LingjieLi.github.io -c 4
PING LingjieLi.github.io (185.199.109.153) 56(84) bytes of data.
64 bytes from 185.199.109.153 (185.199.109.153): icmp_seq=1 ttl=51 time=68.0 ms
64 bytes from 185.199.109.153 (185.199.109.153): icmp_seq=2 ttl=51 time=67.2 ms
64 bytes from 185.199.109.153 (185.199.109.153): icmp_seq=3 ttl=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值