一、开源项目简介
GoEdge是一款管理分布式CDN边缘节点的开源工具软件,目的是让用户轻松地、低成本地创建CDN/WAF等应用。
GoEdge目标
做一款人人用得起的CDN & WAF系统。
二、开源协议
使用BSD-3-Clause开源协议
三、界面展示
四、功能概述
特性
-
免费 - 开源、免费、自由、开放
-
简单 - 架构简单清晰,安装简单,使用简单,运维简单
-
高扩展性 - 可以自由扩展新的节点,支持亿级数据
功能介绍
-
多用户
-
日志审计
-
集群管理
-
HTTP/HTTPS/TCP/UDP等协议支持
-
WAF
-
缓存
-
DNS自动解析
-
多域名绑定
-
免费证书申请
-
IP黑白名单
-
访问日志
-
统计
-
内容压缩
-
Protocol Proxy协议
-
本地静态文件
-
URL跳转
-
路由规则
-
重写规则
-
访问控制
-
字符编码
-
自定义页面
-
自定义HTTP Header
-
Websocket
-
WebP自动转换
-
Fastcgi
-
请求限制
-
流量限制
产品优势
在业界,很多人都选用Squid、HAProxy、Nginx等工具作为CDN服务应用程序,那么为什么要选择GoEdge呢?诚然这些都是非常优秀的工具,但是GoEdge相对于它们在某些地方仍然有一些明显的优势:
-
完整的管理界面 - 可以通过管理界面操作一切功能,无需使用代码,为我们节省了记忆负担,也减少了出错的机会;
-
安装简单 - 得益于我们发布的程序都是编译好的二进制文件,即使是一个技术小白也可以轻松安装、启动,无需安装额外的系统库,上传、解压、启动可以一气呵成;
-
完整的解决方案 - 不仅仅包含CDN加速功能、Web服务,还包含了多租户(用户)、日志、监控、安全(WAF)、DNS等功能;
-
容易集成到别的系统 - 所有数据都通过GRPC操作,第三方系统可以轻易通过GRPC和HTTP API同GoEdge通讯;
-
更容易二次开发 - 基于Go语言的GoEdge,相对于其他C语言的应用来说更加容易二次开发,入门也相对更加简单,只需要花一些时间学习Go语言即可上手。
性能
目前我们的客户在生产环境中单节点出口带宽峰值最高达17Gbps、缓存文件数量最高达1亿、缓存内容最高达20T,配置:CPUx20线程/128G内存/SSD硬盘。
来源:GoEdge 官网文档
五、技术选型
架构
其中:
-
边缘节点 - 接收和响应用户请求的终端节点
-
管理员系统 - 整体的管理控制系统
-
API集群 - 一组API节点,为别的类型节点提供数据和运算支持
-
用户系统 - 为租户提供管理系统(商业版专属)
-
区域监控系统 - 在各个区域监控节点端口连通性(商业版专属)
-
DNS系统 - 一套可以自行搭建的域名解析系统(商业版专属)
-
数据库集群 - 存储系统需要持久化的数据
运行环境
-
操作系统:目前只支持macOS和Linux开发环境;
-
MySQL:支持 v5.7.x 以上 / TiDB 3.0以上;
-
Golang:支持 v1.18以上;
-
macOS X上需要安装musl交叉编译工具链,安装方法参考项目文档。
其中的组件源码包含如下:
-
边缘节点
-
API节点
-
管理平台
详细内容请查看 README.md 文档
浏览器
html
无
未经允许不得转载: ICode联盟 » 项目源码 » [开源]CDN & WAF集群管理,致力于做一款人人用得起的 CDN & WAF 系统