基于GitHub 和 GitLab 的图床集群架构
介绍
现有的图库方案,均为单节点,遇到该节点故障的将是令人崩毁的。
为了满足日益增长的需求,我设计了一个基于 GitHub 和 GitLab 的图床集群架构。这个方案是全新的原创设计,旨在提供高效、实用的图片存储解决方案。其部署简单,用户可以轻松上手,迅速享受集群和分布式存储带来的优势。

方案亮点:
-
超大存储:通过分布式存储和多节点架构,轻松应对海量图片存储,打破单个存储库的容量限制。
-
安全保障:数据在多个节点间自动同步,形成多重备份机制,确保数据的安全性与可靠性。即使某个节点出现故障,其他节点也能保证数据完整无损,用户无忧使用。
-
集群高可用性:系统通过负载均衡将请求分散到不同节点上,提升了整体性能,即使部分节点宕机,仍然能够稳定运行,确保用户随时访问图像。
-
智能监控:通过自定义密码获取节点状态,轻松掌握集群运行情况,简化管理流程。
-
统一域名:只需一个自定义域名,简化访问体验,确保使用过程的顺畅。
-
高速访问:自动选择响应速度最快的节点进行数据传输,确保用户以最快的速度获取所需内容。
-
全球加速:利用 Cloudflare CDN,提升全球访问速度,确保无论身处何地都能享受流畅体验。
-
图片压缩:自动压缩上传的图片,减少文件大小,提升网页加载速度。
教程
视频: https://youtu.be/SGex7xJ9YdQ
代码: https://github.com/fscarmen2/pic-hosting-cluster
GitHub 和 GitLab 图床集群同步库
- 两个方案的配置文件都是
config.yml,只需要根据实际修改
- 配置文件:
config.yml - 同步脚本:
sync_to_gitlab.sh - AC 脚本:
./github/workflows/cluster_sync.yml
- 配置文件:
config.yml - 同步脚本:
sync_to_github.sh - CI/CD 脚本:
.gitlab-ci.yml
- 只使用 GitHub:
github_only.js - 只使用 GitLab:
gitlab_only.js - 同时使用 GitHub 和 GitLab:
github_gitlab.js
- 正常状态
- 各种不正常状态
- 从 GitHub 获取
https://<自定义域名>/<文件名>?from=where
-
从 GitHub 获取
https://<自定义域名>/<文件名>?from=github -
从 GitLab 获取
https://<自定义域名>/<文件名>?from=gitlab
相关文档
评论与补充0
有问题或想补充的,写在下面 · 选中正文文字再点「报告错误」会自动引用还没有评论。有疑问、补充,或者发现错字,都可以写在下面。

