关于亲爱的母亲的网络环境
在配置某些服务的时候, 我几乎完全不能按照官方给出的教程一遍成功.
如果我去检查log, 几乎百分之九十的错误都是某个网络资源请求超时了, 这是为什么呢?
我在此写一些我记忆中因为 不可描述之物 踩过的坑, 以及我最后是怎么解决的.
WordPress
就在我配置此Blog站的时候, 我使用了Argon主题和WPEdit.md.
我在安装这两个插件后遇上了访问变慢的问题.
我非常费解, 这服务器就在我不到十米的距离, 跟我的延迟<0.1ms, 为什么我都访问变慢甚至504timout呢?
摁下F12可以查看到网络请求内有大量jsdelivr的超时请求, 我联想到了另一起跟jsd的经历, 我大概就猜到了这个问题的原因.
在靠着重启wordpress站点能够续命一两秒的情况下, 我更改了 Argon 和 WPEdit.md 的CDN, 卡顿消失.
我是真操了你妈的
Platform.io
因为需要使用 VScode 的 Platform.io 插件来给我的一些ESP小项目刷写固件, 我配置过一次 Platform.io 的环境, 那体验也让我印象深刻.
我已经找不到当时的截图了, 我引用几段百度可以搜到的文章
我最后的解决方案是给我的树莓派刷了一个 openwrt , 然后用路由级别的全局魔法才能让这些请求走魔法, 可以观察到他从 GitHub 上拉了一个资源包, 一切问题的起因.
最离谱的是, 我在淘宝搜索了一下 Platform.IO 的关键词, 看到了非常具有国内特色的一些结果.
只能说, 一方水土养一方人吧.
各大包管理器
pacman, apt, pip, php composer, 这四个算是我用过的, 无一幸免.
pacman 可以自动换源, 敲一个 pacman-mirrors 就可以自动测速换源.
apt 可以手动换源, 按照各家大学的教程换上国内镜像, 可以使用.
pip , 虽然他有镜像, 但是我在安装 AstroServer 的 requirements.txt 时, 换镜像多次失败, 所以只能走魔法.
php composer, 环境变量加http魔法, 成功.
我只能说, 想要在这里当一个开发者, 你必须有能力给各种层面的请求施法, 不然只会处处吃屎.
Proxmox
Proxmox 或者又名 PVE 是现在非常先进的服务器虚拟机环境, 支持各种企业级的功能, 目前此站点就跑在我基于PVE的服务器上.
Proxmox 基于 debian , 所以可以按照上述给 apt 换源的方案给 debian 换源, 但是 Proxmox 自己还有一个repository, 在我某天晚上折磨许久之后, 才发现清华居然收录了Proxmox的 apt 镜像和 LXC-Containers 镜像, 换后速度起飞, 激动地赶紧更新了一下 Linux 内核, 非常的流畅.
Minecraft
这里的 Minecraft 指的是众多 Mod 自带的更新检查功能, 基本都是从境外的某服务器上拉manifest检查自身的更新.
这个检查更新的行为是在游戏主线程上做的, 所以按照国内的网络请求速度, 这个检查更新多半都会超时, 但是在他超时前会一直卡住游戏的加载, 导致像是 GTNH 这种重型Mod包要开二十分钟甚至更久.
感谢虾米某不知名人士做出的工作, 可以通过安装 NonUpdate 直接干掉所有来自 Mod 的网络请求.
当然你可能需要给 CustomSkinLoader 或者 i18nupdate 这样的Mod加上几句白名单, 但是这样繁琐确实值得每次节省五分钟的游戏加载时间.
其实很难说到底是 Mod作者 傻逼还是
不可描述之物傻逼.
但是我觉得国外玩家应该没遇到过这种问题吧? 所以我也还是收录在了这里.
jsDelivr
引用DC的一段话: 他妈的,以前jsdeliver巨他妈快 神经病一样
其实我接触 jsDelivr 不是因为建站, 是因为我要拉一些来自 GitHub 的源码文件.
我有个叫 WFBot 的小项目要不定期更新一些 json格式 的资源, 所以我把这些文件放在了 GitHub 上并且靠着 GitHub Action 实时更新.
在19年的时候是可以直连 GitHub 拉这些资源的, 然后大概在20年就不可以了, 所以我转而使用了 JsDelivr 作为镜像, 他妈的, 那是真的快.
然后在21年的某个时间段, jsDelivr 经历了各种手段的Block, 在国内彻底无法访问, 首先是大量自建站点的页面崩溃, 然后我也经历了我的服务的宕机.
忍无可忍, 我还是把这些资源挪到了我的服务器上, 用我服务上的代理定期从 jsDelivr 上定期更新, 然后再用简单的 Nginx 分发出去.
我是真的不理解, Block jsDelivr有什么意义吗?
我爱你,我的祖国
zgsm