近期网络项目的问题及处理

近期有一点闲暇时间后,我处理了一些近几个月网络项目出现的问题。这些问题的出现,给使用、维护带来一些不便,不得不进行处理。

图片、代码仓库迁移

由于Github在我们生活的地方被间断性“搅合”,目前已无法正常使用,因此我将图片、代码仓库从GitHub转移至Bitbucket。

图片仓库

我有三个站点有图片存储,分别为本博客、Gitbook、Hexo blog(后文还会讲述后两个项目的问题)。去年,图片均迁移至GitHub,其中本博客的图床接入Netlify(同时接入Vercel作为备用),后两个项目的图片使用jsdelivr CDN。

2022年5月,jsdelivr CDN被“隔离”。2022年6月底,我将三个图片仓库全部迁移至Bitbucket,所有图片均接入Netlify和Vercel,均绑定相应网络项目的二级域名。替换一堆md文件,难于逐个修改,羽忆江南向我推荐了微软公司开发的Visual Studio Code,有中文界面,可对多个文件进行批量查找与替换操作,并自动保存。

由于对图片进行了高强度有损压缩,三个图库占用空间总计只有几十Mb,使用的流量均为Netlify和Vercel流量,因此并不构成滥用。

代码仓库

公开仓库中,除Diary主题依旧放在Gitlab(不是GitHub),其余代码仓库均迁移至Bitbucket。变更后,我发布的三个Typecho主题的下载链接分别为(按发布时间先后顺利排列):

私有仓库中,除不再使用的仍放在GitHub,其余的均转移至Bitbucket。

Gitbook由在线编译改为本地编译

Gitbook主程序已不再更新,开发团队已将重心转移至gitbook.com在线文档项目。新版本nodejs对Gitbook程序进行编译时,会出现一个错误:

TypeError: cb.apply is not a function

之前Vercel和Netlify在线编译Gitbook时均不会报错。2021年9月之后我没有更新Gitbook内容,直到最近进行上文所述的操作时自动触发在线编译,才发现两个平台升级nodejs版本后编译Gitbook报错的问题。

网上关于此的讨论非常多,提供的解决方法基本一致,参照这篇文章(互联网档案馆备份:点此查看),需对gitbook-cli使用的node模块进行修改。在线编译平台是无法修改的,因此Gitbook只能选择本地编译的方式。

Gitbook主程序在我们生活的地方早已被“隔离”,表现为:安装过程中,执行gitbook install时不成功。某软件只针对浏览器和客户端,对“终端”是无法生效的。我需要使用另一种方法:借助已root的安卓手机+一个发射无线中继的软件,该软件可利用root权限发射带有某个信号的无线中继,而且可以在连接Wi-Fi的同时发射无线中继。然后,gitbook成功安装了,以后不再需要使用某软件即可编译和发布。

此次本地编译,我对Gitbook安装了插件,二级目录默认折叠,一键返回顶部,浏览起来更美观更方便。

那么问题来了,我之前用过gitbook.com在线文档,为何现在不用了呢?根据之前的使用经验,有两个原因:第一,从登录页面跳转到后台的链接在我们生活的地方被“隔离”了,表现为输入账号密码或使用第三方账号登录后无法跳转到后台;第二,gitbook.com的CDN在我们生活的地方被间断性“搅合”了,表现为更新文档后在我们生活的地方无法看到新内容,我也说不清需要多久才能正常浏览。

点此查看我的Gitbook项目。2019年开始我解析了由博友赠送的域名liudark.com到Gitbook,并为该项目起名“柳暗”,2022年过期前忘记续费了。当前使用的域名也是2019年注册并解析到“柳暗”的,为eu.org免费域名。由于该免费域名服务非常稳定,所以暂时不准备解析付费域名到此项目。

Hexo blog暂停维护

我的Hexo blog是给身边的人看的,目的是装X。

在GitHub、Gitlab、Bitbucket上传程序主文件,接入Vercel和Netlify即可在线编译,Gitlab自身也可以在线编译。更新时,只需在线上传md文件即可。以Hexo为主的静态博客,持续兼容新版本的nodejs,在线编译一直正常,无需担心。

以Hexo为例(有部分文件是多余的,作为备份没有删除):

在线编译Hexo

以Hexo为主的静态博客,在Vercel和Netlify的推动下,已大大简化了维护过程。但静态博客还有几个缺陷:

  • 更新相对繁琐
  • 无法顺利转移到动态博客(如WordPressTypecho
  • 评论系统上,我们生活的地方“隔离”了Disqus,这是我们独有的“不便”

如需使用其他评论平台,很多主题需要手动修改代码,这很考验技术,我使用的Cactus主题修改过,以失败告终。使用其他评论平台(如Waline)还要依赖国内公司的国际版存储服务,数据格式是私有化的,注定无法顺利迁移。

近期我建立了用于记录工作的新博客,该博客公开的内容是可以对身边人公开的,如有需要,装X的作用同样可以发挥。因此我决定对Hexo blog暂停维护,所使用的.xyz域名到期后不再续费,届时我会解析一个用于新博客的域名的二级域名过去,让Hexo blog继续存在于互联网上。

自建邮箱出现故障

去年,我使用VPS利用docker+mailu搭建了自己的邮箱,未开启病毒检测。前不久,我发现邮箱一直没收到任何邮件,登录VPS发现硬盘被塞满。经查,问题没有出在mailu,而是出在docker,docker产生了海量的日志,存储在/var/lib/docker/overlay2下,共28G。

网上关于此的讨论中,部分docker程序也有类似问题。他们在文章中叙述的处理方法,并不具体,作为外行人完全看不懂。我试着按这些方法操作,均失败了。于是重新使用由专业的办公套件服务商zoho国际版(international)提供的免费邮件服务(支持imap),没有绑定域名。

当前,我暂时不准备再修复这个问题,因为远超自己的能力范围。

为何不再使用国内类似平台

自本博客重建以来,我用过大概十几个国内的类似平台,现在全部放弃了,其原因多种多样,三言两语难以诉说。之后,我对这句话深有感触:

防祸于先而不致于后伤情。知而慎行,君子不立于危墙之下,焉可等闲视之。——《孟子》

另外,我要声明一个事情:我所建立的任何博客、网站等的评论区永远不会添加IP地址显示和/或IP位置显示。

以上便是近几个月网络项目遇到的问题及处理方法。有很多问题本不该发生,或者本不该变得复杂,但在我们生活的地方,有些事,让我怎么说呢……

文坛上拉满带电的铁丝网,画苑里遍处布雷;笔杆好像炸弹里的撞针,摆弄不好,就会引来杀身之祸。——冯骥才《感谢生活》

40 条回复

灰常记忆 2022年6月30日 回复

啊,你折腾了这么多,自建邮局我本来要折腾的,结果太复杂直接劝退……

IP地址显示真是厌恶,自己的自留地瞎折腾啥。

林海草原 2022年7月4日 回复

自建邮局用docker安装过程还真不复杂,但我遇到的问题不会处理的话还真是问题。

沉舟侧畔 2022年7月1日 回复

各种“被隔离”,要不要考虑润出来呢?

林海草原 2022年7月4日 回复

海外的免费替代品应该不会全部“被隔离”,vercel之前被隔离一段时间他们也针对我们生活的地区的用户专门提供了解决方案,并向全世界公开了。

大峰 2022年7月4日 回复

wordpress转到静态博客,没问题,可是再转回去就麻烦了,评论也不好弄,但是静态博客不需要维护数据库什么的,论方便,还是动态博客方便些!手机就能更新博客。

林海草原 2022年7月4日 回复

静态转动态可不是一般的麻烦,那些静态博客粉们都在回避这个问题。
维护数据库,应该就是备份吧,这个确实是安装博客需要首先考虑的问题。我从typecho转Wordpress,就是因为typecho下面唯一的数据库备份插件(最后更新于2012年)不兼容php 8.0。

2broear 2022年7月5日 回复

我之前托管在TX云cdn的图片在迁移后有些也挂了、还是放本地好了

林海草原 2022年7月6日 回复

这可能是TX云的锅。
我觉得,放在github、gitlab、bitbucket,然后接入vercel和netlify,应该是网络渠道当中最稳的。

老刘 2022年7月6日 回复

反正我的图片也不多,习惯放在了本地。

林海草原 2022年7月6日 回复

备份好了就好。

网友小宋 2022年7月7日 回复

我博客图床站点都在腾讯云上,一个月就得备份一下,备份越来越大了,自己的东西还是存自己手里安全。

林海草原 2022年7月8日 回复

这些国内平台,上传容易下载难。本地一定要有备份,而且文件名要和在线保存的一样,便于迁移。

dujun 2022年7月11日 回复

自建邮局不好解决被对方判定垃圾邮件的问题。还有些厂商,开 25 端口要专门审批。

林海草原 2022年7月14日 回复

海外的VPS应该是不需要审批25端口的,这一点还好。而被对方判定垃圾邮件问题,这个确实是个难题。自建邮局,或者用海外的邮件服务商,会给域名添加DKIM记录,一般发给其他海外的邮箱不会被判定为垃圾邮件,但是发给国内的就不行,因为国内的邮局会判定发件方的ip是不是在境外,发件方的域名有没有B-A。

回复 林海草原 取消回复