Skip to content

【讨论】Github 站点:静态资源的快速稳定访问的方案讨论,收集意见 #379

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
7 of 8 tasks
wangliang181230 opened this issue Oct 23, 2024 · 17 comments
Closed
7 of 8 tasks
Labels
Config Issue 配置问题 v1.8.9 1.8.9版本
Milestone

Comments

@wangliang181230
Copy link
Contributor

wangliang181230 commented Oct 23, 2024

注:当前讨论是基于 DS的默认模式 的前提下进行,不使用彩蛋功能。

一、问题:(注:最终解决方案见章节(五))

Github 站点的静态资源的访问一直都很不稳定,主要包括以下2种域名:

  • github.githubassets.com:样式、脚本
  • *.githubusercontent.com:其他一些静态资源
    • avatars.githubusercontent.com:头像
    • user-images.githubusercontent.com:PR或Issue留言里的图片(旧的)
    • private-user-images.githubusercontent.com:PR或Issue留言里的图片(新的)
    • camo.githubusercontent.com:badge
    • raw.githubusercontent.com:仓库内文件
    • viewscreen.githubusercontent.com:查看PR Files changed 里,贡献者提交的图片文件

二、目前的方案:

  • SNI + 预设IP 进行访问(拦截设置 + IP预设置)
  • 访问成功后,客户端缓存一年(拦截设置)

目前,预设置的IP非常的不稳定,经常会卡住。
虽然访问成功并缓存后,近一年时间速度会非常快,但客户端缓存毕竟只是个人缓存无法共享,而且存在更新不及时的问题。

三、当前讨论的目标:

在这里想收集大家的加速访问方案,来优化DS,加快这些静态资源的访问速度及稳定性。

四、可能的优化方案罗列:

  • 设置更快速更稳定的预设IP(这个方案似乎不怎么行)
  • 代理到加速镜像地址
  • ......其他优化方案待添加

五、最终解决方案:(完成)

  • github.githubassets.com
    • 2024/10/30 完成:共享远程配置文件已调整
    • 【代理方案】直接代理到 github.com,并处理响应头
    • 【缓存方案】缓存一年
  • *.githubusercontent.com
    • 2024/11/06 完成:共享远程配置文件已调整
    • 【预设IP方案】预设3个IP 146.75.92.133199.232.144.133199.232.88.133,代替原来4个不稳定的IP。
      • 注:这3个IP为 Fastly CDN的IP。
    • 【缓存方案】缓存一年
    • avatars.githubusercontent.com
    • user-images.githubusercontent.com
    • private-user-images.githubusercontent.com
    • camo.githubusercontent.com
    • raw.githubusercontent.com
  • viewscreen.githubusercontent.com:这个域名与上面5个域名不同,无法使用上面的预设IP
    • 【预设IP方案】预设6个IP:(注:以下 IP 速度慢且不稳定,需要再寻找更快更稳定的方案)
      • 140.82.112.21
      • 140.82.112.22
      • 140.82.113.21
      • 140.82.113.22
      • 140.82.114.21
      • 140.82.114.22
@wangliang181230 wangliang181230 pinned this issue Oct 23, 2024
@wangliang181230 wangliang181230 changed the title 【讨论】Github 站点的静态资源的快速访问方式讨论 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论 Oct 23, 2024
@cuicanmx
Copy link

cuicanmx commented Oct 23, 2024

  1. 这个设置更快速更稳定的预设IP是不太可能的,因为就只有亚洲的IP才快,再多它远啊,而且有些是anycast,你这IP再多也没用,鬼知道任播到哪?github本身没有中国备案,而且有一些奇怪的违规内容,而且我们国家向github要求删除的东西,github根本不管,这是github自己的问题,目前来看访问github是完全没有问题的,在默认情况下。再快没有意义。gitee 等git都是可以用的,而且很多企业都是自建的git,谁会用一个三天两头打不开不稳定的仓库用在生产环境下。
    我引用作者的 重要提醒2: 本应用主要目的在于直连访问github,如果你已经有飞机了,那建议还是不要用这个自行车(ds)了,所以想要再快真的没有必要,预设IP其实已经杜绝了DNS污染,但是你数据包路由的时候,这是可以人为丢包的,一个是封IP一个是封域名。
    我想开发者边车,这个名字是为开发者而来的,何不把它打造成一个开发者的军工刀,不光是加速网络,切换node版本啊这些方便开发者的功能也可以去做,还是那句话真正有需要的人绝对不会去等 20k/sgit clonegit pull,而且改证书对有些软件压根不信任,这也相当肉疼。
  2. 并发?
  3. *.githubassets.com 这玩意是anycast好像是fastly的cdn这个IP改来改去是没有用的,想让这个加速只有镜像(电信联通走的是NTT的线移动走的pccw,有些地方好,但大部分不怎么样),还有类似的像 *.github.io

仅表达个人观点,不喜勿喷,谢谢!

@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Oct 24, 2024

@cuicanmx 首先,非常感谢你的意见。


这个设置更快速更稳定的预设IP是不太可能的,因为就只有亚洲的IP才快,再多它远啊,而且有些是anycast,你这IP再多也没用,鬼知道任播到哪?

关于预设IP,之前也听群里的人说过,这个方案大概是不可行的。


目前来看访问github是完全没有问题的,在默认情况下。再快没有意义

这个我也知道,静态资源的缓存配置也是做足了的,今天早上也把遗漏了的 github.githubassets.com 缓存配置给加到共享远程配置文件中了。主要是最近群里很多人反馈页面打不开,所以就发个Issue,看看有没有大佬知道有什么新的解决方案。


gitee 等git都是可以用的,而且很多企业都是自建的git,谁会用一个三天两头打不开不稳定的仓库用在生产环境下。

目前国内的github的用户还是很多的,主要是一些开源用户吧,包括我,也参与一些开源项目,但这些项目在国内仓库站里没有,实在没办法。


我引用作者的 重要提醒2: 本应用主要目的在于直连访问github,如果你已经有飞机了,那建议还是不要用这个自行车(ds)了,所以想要再快真的没有必要。

虽然我也知道,但作为DS的Committer,总会想着更快的解决方案,哈哈。


我想开发者边车,这个名字是为开发者而来的,何不把它打造成一个开发者的军工刀,不光是加速网络,切换node版本啊这些方便开发者的功能也可以去做。

嗯嗯,这也是DS的一个重要的方向,我会考虑的。主要一个问题就是DS的贡献者太少,目前就我一个人,实在是精力有限,且最近工作也越来越忙了。


  1. 并发?

指的是对同一个域名的多个预设IP同时发起请求,哪个先响应就用哪个吗?


  1. *.githubassets.com 这玩意是anycast,好像是fastly的cdn,这个IP改来改去是没有用的,想让这个加速只有镜像(电信联通走的是NTT的线移动走的pccw,有些地方好,但大部分不怎么样),还有类似的像 *.github.io

不知道有没有像 raw 一样的加速镜像地址可以用。

@wangliang181230 wangliang181230 added the Help Wanted(请求大佬帮助) Extra attention is needed label Oct 28, 2024
@lanyue2024
Copy link

lanyue2024 commented Oct 29, 2024

github.githubassets.com 这个域名可以直接改成 github.com,后者的IP还是蛮多的。
至于 *.githubusercontent.com 用了 fastly 的 CDN,它的IP也不少,应该能找到速度快。

@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Oct 30, 2024

github.githubassets.com 这个域名可以直接改成 github.com,后者的IP还是蛮多的。

哇哦,我试过了,效果非常棒,的确是直接代理到 github.com 就行了。非常感谢。

@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Oct 30, 2024

@lanyue2024 共享远程配置文件 已经调整了,添加了以下拦截配置,效果很好,非常感谢。

{
  "github.githubassets.com": {
    "^(/[^/]+)*/[^./]+\\.(svg|png|gif|jpg|jpeg|ico|js|css)(\\?.*)?$": {
      "cacheDays": 365,
      "desc": "图片、JS文件、CSS文件,缓存1年"
    },
    ".*": {
      "proxy": "github.com",
      "sni": "baidu.com",
      "responseReplace": {
        "headers": {
          "access-control-allow-origin": "*", // 必须加这个响应头,否则脚本文件会被跨域拦截
          "set-cookie": "[remove]" // 可选移除这个响应头,否则控制台会报警告,但不影响页面加载
        }
      }
    }
  }
}

@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Oct 30, 2024

至于 *.githubusercontent.com 用了 fastly 的CDN,它的IP也不少,应该能找到速度快。

这个域名的IP,我在 https://www.itdog.cn/dns/ 以及其他几个查IP站点上都查了,但是一直是以下 4 个IP:

185.199.108.133
185.199.109.133
185.199.110.133
185.199.111.133

大佬知道去哪里能查到它的IP吗?

@wangliang181230 wangliang181230 added the Waiting for a reply(等待回复) 等待用户回复的问题 label Oct 31, 2024
@wangliang181230 wangliang181230 added this to the 待处理 milestone Oct 31, 2024
@wangliang181230 wangliang181230 changed the title 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论,收集大家的意见 Nov 5, 2024
@lanyue2024
Copy link

试试这些?

146.75.92.133
199.232.144.133
199.232.88.133

@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Nov 6, 2024

试试这些?

146.75.92.133
199.232.144.133
199.232.88.133

@lanyue2024 哇,可以用,虽然IP测速也是 100 ms 以上,但比上面的4个IP稳定多了,不会动不动出现一个请求超过几十秒的了。感谢分享!

@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Nov 6, 2024

目前速度已经非常快了,这个Issue暂时先关闭了。后面有需要再重启讨论,哈哈。

@wangliang181230 wangliang181230 changed the title 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论,收集大家的意见 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论,收集大家的意见(完成) Nov 6, 2024
@wangliang181230 wangliang181230 added Config Issue 配置问题 and removed Help Wanted(请求大佬帮助) Extra attention is needed Waiting for a reply(等待回复) 等待用户回复的问题 labels Nov 6, 2024
@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Nov 6, 2024

146.75.92.133
199.232.144.133
199.232.88.133

@lanyue2024 请问一下,这几个IP是在哪个站点查哪个域名获取到的啊?

@wangliang181230 wangliang181230 modified the milestones: 待处理, 1.8.9 Nov 6, 2024
@wangliang181230 wangliang181230 changed the title 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论,收集大家的意见(完成) 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论,收集意见(完成) Nov 6, 2024
@lanyue2024
Copy link

lanyue2024 commented Nov 6, 2024

还是老方法,扫描呗。fastly的ip都有规律,这里是133结尾,那就多线程去扫fastly的ip段包含133的。

@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Nov 7, 2024

还是老方法,扫描呗。fastly的ip都有规律,这里是133结尾,那就多线程去扫fastly的ip段包含133的。

额,是扫所有 *.*.*.133 的IP吗?范围太大了点。还是 fastly 的 IP 段固定的?
另外,怎么判断扫到的IP和域名匹配的啊?或者,有没有现成的脚本?

@wangliang181230 wangliang181230 changed the title 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论,收集意见(完成) 【讨论】Github 站点:静态资源的快速稳定访问的方案讨论,收集意见 Nov 9, 2024
@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Nov 9, 2024

@lanyue2024
问下,viewscreen.githubusercontent.com 域名,是否用了 fastly 的 CDN 啊?目前配置的6个IP不是很稳定。

@ZhangYaoan
Copy link

目前的静态资源缓存方案似乎有点过于激进了,某些情况下可能会导致 Github 的 CSS 和 JS 全部丢失,无法正常使用

@wangliang181230
Copy link
Contributor Author

wangliang181230 commented Nov 10, 2024 via email

@lanyue2024
Copy link

@lanyue2024 问下,viewscreen.githubusercontent.com 域名,是否用了 fastly 的 CDN 啊?目前配置的6个IP不是很稳定。

确实没用 fastly的CDN。

@wangliang181230
Copy link
Contributor Author

@lanyue2024 问下,viewscreen.githubusercontent.com 域名,是否用了 fastly 的 CDN 啊?目前配置的6个IP不是很稳定。

确实没用 fastly的CDN。

噢,好吧,那就先这样吧,反正这个域名速度慢,影响比较小。
谢谢回答。

@wangliang181230 wangliang181230 unpinned this issue Nov 12, 2024
@wangliang181230 wangliang181230 added the v1.8.9 1.8.9版本 label Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Config Issue 配置问题 v1.8.9 1.8.9版本
Projects
None yet
Development

No branches or pull requests

4 participants