Coder Social home page Coder Social logo

teaoslab / edgeadmin Goto Github PK

View Code? Open in Web Editor NEW
48.0 1.0 32.0 33.3 MB

CDN & WAF集群管理系统。

Home Page: https://goedge.cloud

License: BSD 3-Clause "New" or "Revised" License

Go 27.13% CSS 1.06% JavaScript 51.84% HTML 13.77% Less 0.58% Shell 0.09% Dockerfile 0.02% C 5.44% Python 0.06%
golang cdn waf proxy dns http2 reverseproxy ipv6 tcp udp

edgeadmin's People

Contributors

goedgecloud 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

Watchers

 avatar

edgeadmin's Issues

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

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

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

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

批量操作

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

服务内证书删除出错

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

基于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会报错

如何在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?

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

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

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

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

应用举例:

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

版本 0.5.1 开源版本

Docker镜像

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

internal/utils/dns.go:44 第44行 DigTraceIP 缺少依赖

您好,我在编译EdgeAdmin v1.4.1 时遇到依赖找不到的情况
dnsIps, err := dig.DigTraceIP(domain)

dig由"github.com/TeaOSLab/EdgeCommon/pkg/utils" 引入
我拉取了相关项目,并没有找到这个utils代码,如果可以的话请提供一下,万分感谢

IP可以直接被访问

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

内存缓存问题

我配置:磁盘500g、内存32g
缓存策略设置磁盘缓存200G,内存设置20G
节点也是设置,缓存200G,内存设置20G
可是工作一段时间,节点详情显示:缓存用量 | 硬盘:166.91GiB   内存:0B
可是明明设置内存缓存,为什么一显示0B

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

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

防火墙功能有问题

防火墙功能有点问题,管理界面上是能添加ip段和子网段、单个IP地址,但是使用ipset就会创建对应的ip:hash ipset 集就只能添加单个IP地址了,官网上自定义脚本和 http api 有没有详细说明,后续是否有计划完善这一块?

关于文档问题

想问一下, 是否有考虑过开源文档呢? 现在的网站在备案,都没办法查看文档

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

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

【建议】几个小功能的建议

1、WAF策略中,如果是验证码多次失败,会自动添加到系统黑名单,能否在WAF中指定添加到哪个公共黑名单里;
比如说,针对爬虫,我希望是先弹出验证码,如果是连续失败多少次,然后自动添加到爬虫分组的黑名单里,这样以后也好管理。

2、是否可以增加一个类似“灰名单”的分组,这个分组只是用来搜集IP,而不是做拦截。
比如说,我需要观测访问我网站的,使用Edge浏览器的用户,现在只能识别后放到白名单里,然后有些恶意的爬虫会伪造Edge的useragent,然后我的其他规则(比如说 目录探测)就完全失效了。如果放到黑名单里,误伤又比较大。然后因为一个服务器,或者所属集群只能一个waf规则,其他站还是需要正常的拦截的,也不能改成观察模式。

以上,感谢。

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.