开源CDN软件GoEdge —— 筑梦之路

news2024/9/30 7:28:14

官方网站:GoEdge CDN - 制作自己的CDN - GoEdge CDN | 自建CDN

GoEdge是一款管理分布式CDN边缘节点的开源工具软件,目的是让用户轻松地、低成本地创建CDN/WAF等应用。

特性

  • 免费 - 开源、免费、自由、开放

  • 简单 - 架构简单清晰,安装简单,使用简单,运维简单

  • 高扩展性 - 可以自由扩展新的节点,支持亿级数据

功能介绍

  • 多用户

  • 日志审计

  • 集群管理

  • 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硬盘

 

其中:

  • 边缘节点 - 接收和响应用户请求的终端节点

  • 管理员系统 - 整体的管理控制系统

  • API集群 - 一组API节点,为别的类型节点提供数据和运算支持

  • 用户系统 - 为租户提供管理系统(商业版专属)

  • 区域监控系统 - 在各个区域监控节点端口连通性(商业版专属)

  • DNS系统 - 一套可以自行搭建的域名解析系统(商业版专属)

  • 数据库集群 - 存储系统需要持久化的数据

github地址:GitHub - TeaOSLab/EdgeAdmin: CDN & WAF集群管理系统。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1283481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2使用ElementUI

elementui官网:组件 | Element 1、全部引入 下载:npm i element-ui 在 main.js 中写入以下内容:import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;Vue.use(…

12月2号作业

#include <iostream>using namespace std; class Sofa{ private:string setting;string *lying new string;public:Sofa(){cout << "Sofa::无参构造函数" << endl;}Sofa(string setting,string lying):setting(setting),lying(new string (lying)…

封装带插槽的表格

子组件 <template><div><table><thead><tr><th v-for"col,colIndex in columns" :key"colIndex">{{ col.title }}</th></tr></thead><tbody v-if"instList.length >0"><tr …

IDEA 保存自动ESLint格式化

作为后端人员&#xff0c;偶尔修改一下前端代码&#xff0c;ESLint总提示格式不正确。有没有什么办法实现自动格式化呢&#xff1f; 安装插件Save Actions Tool 设置中搜索eslint 勾选 Run eslint --fix on save 这样以后&#xff0c;只要保存文件就会自动格式化了。 参考 …

Python 流程控制

目录 程序流程 顺序结构 分支结构 单分支 双分支 多分支 if 嵌套 循环结构 while循环 for 循环 退出循环 循环与分支嵌套 附录 程序流程 程序是由语句构成&#xff0c;而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑…

vue+electron问题汇总

1. Vue_Bug Failed to fetch extension, trying 4 more times 描述&#xff1a;项目启动时报错 解决&#xff1a;注释图片中内容 2. Module not found: Error: Can’t resolve ‘fs’ in 描述&#xff1a;项目启动报错 解决&#xff1a;vue.config.js中添加图中数据 3.导入…

开会做笔记的时候用什么软件比较好?

在工作生涯中&#xff0c;会经历很多大大小小的会议&#xff0c;而如何快速准确记录下会议上重要的内容&#xff0c;成了很多上班族的必修课。在会上做笔记&#xff0c;选择什么样的工具才能事半功倍&#xff0c;成了一个值得深思的问题。而经过一段时间的测评后&#xff0c;我…

Windows系统下配置多个版本的jdk

1:准备多个版本的jdk 下载地址:Java Downloads | Oracle 2:安装多个版本的jdk 3:跳转到环境变量配置页 主要是配置环境变量,win10系统操作如下 1)搜索控制面板 2)点击系统与安全 3)点击系统 4)点击高级系统设置 5)点击环境变量 4:为多个版本的jdk配置环境变量 将多个版本的jd…

深度学习(五):pytorch迁移学习之resnet50

1.迁移学习 迁移学习是一种机器学习方法&#xff0c;它通过将已经在一个任务上学习到的知识应用到另一个相关任务上&#xff0c;来改善模型的性能。迁移学习可以解决数据不足或标注困难的问题&#xff0c;同时可以加快模型的训练速度。 迁移学习的核心思想是将源领域的知识迁…

专业做除甲醛净化器的品牌 甲醛净化器什么牌子最好用

室内产生了超标的甲醛&#xff0c;大部分都会采取选择甲醛空气净化器来去除&#xff0c;甲醛净化器逐渐成为室内清除甲醛的主力&#xff0c;在选择甲醛净化器时&#xff0c;人们常常会被市场上琳琅满目的空气净化器品牌所迷惑&#xff0c;各品牌和型号都声称自己最好&#xff0…

关于 Windows 11 显示更多选项

更新 Windows 11 后&#xff0c;右键鼠标出现 显示更多选项&#xff0c;本文解决如何默认显示所有选项 默认显示更多选项 winR打开运行框输入cmd回车输入下面的命令并回车&#xff0c;重启系统 reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c9…

10、SQL注入——数据库基础

文章目录 一、数据库概述二、数据库分类Mysql数据库连接方法 三、识别数据库四、SQL语法4.1 SQL基本语法4.2 高级操作 一、数据库概述 数据库&#xff08;database&#xff09;&#xff1a;存储在磁盘、磁带、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。数…

Linux常用命令——atq命令

在线Linux命令查询工具 atq 列出当前用户的at任务列表 补充说明 atq命令显示系统中待执行的任务列表&#xff0c;也就是列出当前用户的at任务列表。 语法 atq(选项)选项 -V&#xff1a;显示版本号&#xff1b; -q&#xff1a;查询指定队列的任务。实例 at now 10 minu…

Figma安装指南:新手入门必看!

如果您想下载Figma客户端&#xff0c;可以直接在Figma官网Products>Downloads页面下载。 如果你不能访问Figma的官方网站&#xff0c;即使下载到客户端&#xff0c;你的网络环境也不能正常使用。 因为Figma的服务器在国外&#xff0c;在国内访问时经常会遇到网络不稳定的情…

基于springboot + vue 学生网上请假系统

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

Python标准库:math模块【侯小啾Python基础领航计划 系列(十六)】

Python标准库:math模块【侯小啾python基础领航计划 系列(十六)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

探索人工智能领域——每日20个名词详解【day6】

目录 前言 正文 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如需转载&#xff0c;请事先与我联系以…

JavaEE进阶学习:SpringBoot 的创建和使用

1.什么是Spring Boot Spring 的诞生是为了简化 Java 程序的开发的&#xff0c;而 Spring Boot 的诞生是为了简化 Spring 程序开发的。 Spring Boot 翻译一下就是 Spring 脚手架&#xff0c;它就是为了快速开发 Spring 框架而诞生的 2.Spring Boot 优点 起步依赖 (创建的时候…

【Spark 基础】-- 序列化和反序列化

一、前言 关于序列化和反序列化的定义,在这篇文章中有详细介绍,此处简要说明: 序列化:将对象写入到 IO 流中 反序列化:从 IO 流中恢复对象 我们也可以借助下图来理解序列化和反序列化的过程。 二、Spark 的序列化器 Spark 提供了 2 个序列化库 (Java serializati…

智能优化算法应用:基于未来搜索算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于未来搜索算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于未来搜索算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.未来搜索算法4.实验参数设定5.算法结果6.参考…