Code Monkey home page Code Monkey logo

edgeadmin's Introduction

GoEdge目标

做一款人人用得起的CDN & WAF系统。

截图

特性

  • 免费 - 开源、免费、自由、开放
  • 简单 - 架构简单清晰,安装简单,使用简单,运维简单
  • 高扩展性 - 可以自由扩展新的节点,支持亿级数据

功能介绍

  • 多用户
  • 日志审计
  • 集群管理
  • HTTP/HTTPS/TCP/UDP等协议支持
  • WAF
  • 缓存
  • DNS自动解析
  • 多域名绑定
  • 免费证书申请
  • IP黑白名单
  • 访问日志
  • 统计
  • 内容压缩
  • Protocol Proxy协议
  • 本地静态文件
  • URL跳转
  • 路由规则
  • 重写规则
  • 访问控制
  • 字符编码
  • 自定义页面
  • 自定义HTTP Header
  • Websocket
  • WebP自动转换
  • Fastcgi
  • 请求限制
  • 流量限制

在线演示

文档

架构

架构图

其中的组件源码地址如下:

联系我们

有什么问题和建议都可以加入 Telegram群

企业版

感谢

  • 感谢 Gitee 提供国内源代码托管平台

edgeadmin's People

Contributors

iwind avatar teaoslab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

edgeadmin's Issues

功能优化建议:平台数据库容易出现瓶颈

平台数据库只能对接单台,如果业务量过大时,会导致数据库性能不足。测试对接proxysql做读写分离,发现无法对接上平台,希望增加对mysql中间件的支持,以实现后端数据库的高可靠性。

IP可以直接被访问

添加一个网站,主要源站填写IP地址。然后访问边缘节点的IP,会访问到主要源站上另外一个站点。
注:主要源站已经禁止使用IP访问了。

功能建议:增加全局自定义页面

建议可以在集群设置里增加全局的40x和50x的自定义页面,这样可以不用去一个个网站自定义,如果网站需要自定义那就自动覆盖全局的设置

基于node.js的客户端请求GoEdge系统CDN大概率会返回 read ECONNRESET

情景再现:
GoEdge版本:1.2.2
node.js 代码:

const https = require('https');
https.get('https://xxx.com/test', (response) => { // GoEdge系统的CDN api接口
let todo = '';
// called when a data chunk is received.
response.on('data', (chunk) => {
todo += chunk;
});
// called when the complete response is received.
response.on('end', () => {
console.log(JSON.parse(todo).title);
});
}).on("error", (error) => {
console.log("Error: " + error.message);
});

正常情况:上面的接口是 https://xxx.com/test.json (有文件后缀) 时无论怎样请求都是正常返回数据
不正常情况:上面的接口是 https://xxx.com/test (无文件后缀) 时大概率(源站距离节点越远概率越大)会返回 read ECONNRESET (自动读数据超时 | 自动写数据超时都已经选中)

带着疑问去了 GoEdge 群里找答案,有个人反馈的是 goedge1.21-1.12.2 版本使用 clash 无法获取订阅,这个clash for windows 正是基于node.js的客户端。那个人已经回退了版本暂时解决。

暂时发现影响的是没有后缀的url会报错

Let's Encrypt SSL证书目录怎么回源

我想在源服务器上申请Let's Encryp证书,然后再复制回GOEDGE上,可是GOEDGE把/.well-known/ 目录都截获了,请问要如何让目录 /.well-known/ 回源呢?

Docker镜像

你好,可否搞个Docker镜像,方便部署和更新

节点如何查看比较完整的日志

edge-node accesslog输出的日志太过简单 不利于分析问题 怎么实现输出比较详细的日志 比如全部header信息,cookie信息,有需要甚至可以输出body信息?

更换集群域名请不要删除老记录

因为新记录生效需要时间,现在更换域名会立即删除老集群的DNS所有记录,这样会造成空挡时间
或者说可以选择是否删除老记录,还有个中间方案,就是单个集群可以用多个域名

服务内证书删除出错

服务内证书删除不管删除哪一个,都是会删除第一个绑定的证书。导致后面添加的域名想要换证书 只能重新创建一个服务。

批量操作

例如源需要进行更换或者新增 但是此源的服务有100个甚至更多,有批量操作的考虑吗?

【提问】单个集群内不同网站是否可以应用多种WAF策略?

试用了一下,感觉还是挺好用的
但是发现单个集群似乎只能应用一个WAF规则,不知道是我没有找到还是没有做这样的功能
如果是我没有找到麻烦指点一下怎么弄,如果是没有做这样的功能希望下版做一个

应用举例:

同一个集群内的多个网站,针对不同网站,需要应用不同的WAF策略,目前似乎一个集群只能应用一种策略?网站内没有看到WAF策略的更改选项

版本 0.5.1 开源版本

如何在CDN节点与源站之间开启SSL

用户与CDN节点可以通过SSL连接。
但如何确保在CDN节点与源站之间开启SSL呢?因为源站没有SSL证书。

是不是可以这样理解:
在“网站服务”—“设置”—“反向代理”—“源站地址”中。
如果源站地址类似http://123.123.123.123:80 这样填写,就没有开启SSL(CDN节点与源站之间通过http连接)。
如果源站地址类似https://123.123.123.123:443 这样填写,就已经开启了SSL(CDN节点与源站之间通过https连接)。
虽然没有证书,但是依然可以通过SSL连接,只要使用https:// 和443端口,就是开启了SSL?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.