Releases: TeaOSLab/EdgeAdmin
Releases · TeaOSLab/EdgeAdmin
v1.3.7
v1.3.6
v1.3.5
GoEdge v1.3.5开源版本改进索引存储引擎、提升性能、大幅优化IP名单。
管理系统 EdgeAdmin
- 缓存改进
- 缓存策略中增加“启用MMAP”选项,启用后,节点自动使用MMAP读取缓存文件
- 集群设置增加自动硬盘TRIM选项,启用后,节点自动定时执行
fstrim
,以提升SSD硬盘性能,默认自动启用 - 正在执行中的缓存任务状态从“执行中”文字改为“部分完成”,以便于减少用户对此功能的误解
- IP单改进:
- 更好地支持IPv6,现在真正地支持IPv6范围
- 简化添加IP操作,自动识别IPv4和IPv6,并能快速输入IP范围和CIDR
- 现在添加的CIDR可以直接在列表中显示原始的格式
- WAF改进
- WAF策略增加JSCookie动作设置;拦截动作增加“失败全局封禁“选项;人机识别动作增加“失败全局封禁”选项
- 管理系统安全性改进
- 使用本地SID二次校验增强管理系统安全性
- 用户使用反向代理访问系统时主动引导用户设置“自定义客户端IP报头“,用来改进用户经常自动退出的问题
- 系统安全设置中增加“仅从自定义报头中获取IP”选项
- 增加
edge-admin security.reset
命令来使用命令行重置安全设置
- 源站相关改进
- 源站列表中增加快速停用/启用某个源站的功能
- 源站地址填写为HTTP时,自动检测HTTPS是否可用,并建议使用HTTPS回源,提升安全性,并减少产生无限跳转的可能性
- 限制TCP和UDP网站操作仅限于HTTP网站的功能,防止误操作不同协议的网站
- 内容压缩改进
- 内容压缩功能增加“例外URL“和“限制URL”设置
- 取消内容压缩中的压缩级别设置,现在改为系统根据系统资源进行自动调节
- UA名单支持批量添加关键词
- 防盗链功能增加“例外URL“和“限制URL”设置
- 集群设置--网站设置中增加“自动gzip回源”选项,可以用来节约源站流量
- 多个功能中的例外和限制URL中增加常见图片、常见音频、常见视频等规则,方便用户选择
- OTP认证二维码增加下载链接
- 删除一直未实现的Unix协议相关内容
- 修复手机下左侧主菜单太宽的问题
- 修复因系统glibc版本过低无法启动的问题
API节点 EdgeAPI
- 优化节点上传指标数据程序,现在只上传变更的部分
- IP名单搜索IP时同时搜索IP范围,现在只要范围内包含搜索的IP,即会出现在搜索结果里;另外“全部IP”类型的IP总是会在搜索中出现
- 进程重启时,自动保存未保存的带宽统计数据到本地文件,以便于在重启后恢复
- 增加edgeMetricSumStats表中total长度,以保存更大的数据
- 修复ttlcache可能缺失回收数据的问题
- 修复因为设置了4位版本号而导致无法自动升级SQL的问题
边缘节点 EdgeNode
- 使用KV存储取代SQLite实现缓存索引、指标数据、IP名单、Agent管理
- 缓存改进
- 根据系统环境动态调整内容刷入磁盘线程数
- 使用MMAP提升缓存读取性能
- 增加SSD硬盘自动TRIM功能
- 修复修改内存缓存策略导致缓存策略计算的容量越来越少的问题
- 缓存写入结束时检查Content-Length是否和实际内容长度一致
- 根据系统可用内存调整写入缓存到内存的阈值
- 当使用
Range: bytes=0-
访问分区文件缓存时,只有本地已缓存完整的内容才会允许访问本地缓存,否则将回源读取内容 - 提升Partial Content的范围数据(ranges)写入效率,现在先写入内存缓存再写入文件,避免同时产生大量的文件写操作
- 写分区加载文件时,避免单次拓展的文件尺寸太大,比如1GiB的文件如果第一次就从末尾读取,将不会被直接缓存,避免一次性产生1GiB的硬盘空间需求
- IP名单改进
- 提升IP名单同步和查询性能
- WAF策略中的IP名单也应用于网站单独设置的WAF规则
- WAF改进
- 提升WAF相关加密稳定性
- 人机识别验证成功后记录到Cookie,以便于在重启、切换节点时仍能恢复验证状态,减少验证码invalid request几率
- 优化字节缓冲区相关代码,提升性能
- 内容压缩改进
- 内容压缩级别改为自动调整,避免占用过多CPU
- 减少内容压缩Pool长度,有效减少内存占用
- zstd压缩使用低内存模式,并限制窗口尺寸,防止产生OOM问题
- 内容压缩增加
busy
(繁忙)检测,在此模式下,会减少使用压缩的比例
- 回源跟随改进
- 修复回源跟随无法跨不同协议、不同服务器地址的问题,以往版本的回源跟随只能跟随同一个协议、同一个源站
- 限制单次回源跟随最大跳转次数为8
- 增加网站每日独立IP统计
- 把一些定时任务放入到空闲时间执行,避免影响系统稳定运行
- 修复ttlcache可能缺失回收数据的问题,此问题可能导致内存中有些数据无法正确回收
v1.3.4
GoEdge v1.3.4开源版本实现单体应用、增强管理系统安全性。
管理系统 EdgeAdmin
- 开源版本从网站列表点击网站时默认跳入设置页面
- 实现单体应用,可以将管理系统、API节点和边缘节点放在同一个服务器或容器中
- 集群设置--网站设置中“处理未绑定域名方式”支持跳转到网址
- 优化管理系统和在线安装MySQL后的systemd服务配置
- 缓存任务中键值列表中加入集群信息,以便于调试问题
- 优化安全设置中“自定义客户端IP报头”中可以快速填入默认报头
- 增强管理系统的安全性:
- DNS服务商中的密钥数据以掩码方式显示
- 节点SSH密码和私钥均以掩码方式显示
- 默认禁止搜索引擎和爬虫访问
- 增强XSS和SQL注入攻击防御
- 修复创建网站时不启用访问日志导致Websocket、统计等选项失效的问题
API节点 EdgeAPI
- 修复部分API返回格式错误
- 优化systemd服务配置
- 提升登录SESSION安全性
- IP库地名中增加数百个英文地名识别
边缘节点 EdgeNode
- 优化多处内存使用
- 已设置不支持低版本时HTTP状态码从400改为505
- 开启403/404重试后,仍然保留最后一次请求的源站内容
- 支持通过环境变量EDGE_HTTP_FIREWALL_ENDPOINT来设置外部的HTTP防火墙
- 优化systemd服务配置
- 实验性实现新的缓存索引存储方法(默认不启用)
v1.3.3
GoEdge v1.3.3开源版本大幅提升WebP转换性能、增强WAF。
管理系统 EdgeAdmin
- 在网站列表中增加批量删除网站功能
- 自定义页面跳转支持使用变量
- 网站设置--“字符编码”设置中增加“强制替换”选项(与内容替换无关)
- WAF动作默认设置为“显示网页(page)”,减少因错误规则导致的IP封禁
- WAF策略增加显示页面动作默认设置
- WAF允许动作(ALLOW)增加有效范围,默认可以跳过网站和策略设置的规则
- 集群节点列表页增加停用/启用操作
- 修复参数匹配不区分大小写选项无法保存的问题
- 修复“迁移”功能中无法远程修改API节点访问地址的问题
- 修复部分内置页面没有
<head>
标签的问题
API节点 EdgeAPI
- 增加快捷添加和删除网站源站的API
- 增加修改节点停用/启用状态API
- WAF操作符增加“包含XSS注入-严格模式“操作符;默认的XSS注入操作符不再检测
<xml>
标签 - WAF操作符增加“包含SQL注入-严格模式“操作符,默认的非严格模式不再处理一些二进制文件内容
通用 EdgeCommon
- 变量表达式支持修饰符,比如
${requestPath|md5}
,具体请参考:https://goedge.cn/docs/Server/Variables.md#%E4%BF%AE%E9%A5%B0%E7%AC%A6 - 为了安全起见默认不支持
${serverAddr}
变量
边缘节点 EdgeNode
- 大幅提升WebP图片文件转换性能,实践中,普遍提升3-10倍
- 优化计数器性能,现在计数器的内存回收速度是以往的5-10倍
- 提升UA解析性能(是以往的2-4倍)
- WAF允许动作默认跳过所有规则
- 写缓存失败时,允许继续读取源站内容
- 优化WAF验证码输入界面,并优化验证成功后点击浏览器返回按钮后的行为
- 鉴权访问日志标签增加
auth:
前缀,以往只有typeA
,typeD
之类的标签不方便识别 - 如果源站响应时没有设置Content-Type,则节点在响应时也不设置
- 增加
edge-node config
命令 - 修复缓存策略无法切换文件和内存的问题
- 修复字符编码大写选项不起作用的问题
- 修复Websocket连接无法报告连接关闭的问题
- 修复部分内置页面没有
<head>
标签的问题
v1.3.2
GoEdge v1.3.2开源版本主要增强WAF、部分菜单多语言。
管理系统 EdgeAdmin
- 多语言
- 实现部分菜单的中英文转换
- WAF
- WAF规则集列表中参数、操作符显示中文名称和描述,方便用户识别
- WAF“显示网页”动作增加状态码显示
- WAF策略中人机识别增加“极验--行为验”验证
- IP名单中可以批量删除最多10000个IP
- 集群
- 创建集群时默认生成子域名,形如 g123456.cdn,避免用户手动填写重复
- WebP转换质量转移到集群WebP策略配置中,避免用户自行设置导致的性能问题
- 缓存
- 缓存设置中可以设置缓存主域名,用来复用多域名下的缓存
- 其他
- 将部分MB、GB...改成MiB、GiB…,让流量描述更加准确
- 业务域名CNAME检查DNS主机地址增加Google公共DNS,提升域名解析检查时效性
- 管理系统安全设置中增加“自定义客户端IP报头”,可以通过它为管理系统获取客户端真实IP
API节点 EdgeAPI
- WAF
- 自动升级WAF策略中SQL注入检测和XSS注入检测
- DNS
- 阿里云DNS线路显示完整的线路名称,以往是只显示最大的一级区域名称
- 华为云DNS线路增加一组“运营商_地区”类型线路
通用 EdgeCommon
- WAF
- 将WAF策略模板多个规则集的默认动作修改为“显示页面”
- WAF操作符增加包含任一单词、包含所有单词、不包含任一单词,用单词匹配的方法往往更科学、速度更快
- WAF操作符增加包含XSS注入、包含SQL注入,解析速度相对于正则更加快速,更能通过语义解析提升检测成功率
- WAF检查项增加“所有报头名称”,可以列出当前请求的所有报头名称
- WAF检查项增加“请求来源”,可以获取请求报头中的Referer和Origin信息;旧的“请求来源URL”改名为“请求来源Referer“
边缘节点 EdgeNode
- WAF
- 优化验证码加载方式,减少不必要的图片生成
- WAF验证码验证后返回时判断是否已通过验证
- 增加“极验-行为验”验证码集成支持
- WAF相关跳转不计入统计
- 优化WAF中前缀和后缀相关操作符性能
- 节点进程停止时,自动保存WAF临时白名单,并在进程重新启动后恢复,避免在节点重新启动后影响当前用户访问
- 缓存
- 默认不启用内存分片管理,避免内存可能突发激增
- WebP
- WebP转换限制为若干个线程(根据当前系统配置自动计算),防止占用系统资源过高,当然同时也会导致WebP转换率降低
- WebP策略变化时只更新相关配置,不再重新加载节点全部配置
- 反向代理
- 优化TCP源站错误提示,根据集群设置自动决定是否上报到API节点
v1.3.0
GoEdge v1.3.0开源版本主要增强人机识别、自定义页面、URL跳转等功能。
管理系统 EdgeAdmin
- 优化数据看板图表排列,实现自适应多列显示
- 集群设置--DNS设置中增加”解析记录“页面,方便查看和管理解析记录
- URL跳转中增加例外域名和仅限域名
- 自定义页面增加跳转URL功能,增加例外URL和限制URL设置
- WAF人机识别实现点击验证和滑动解锁验证,策略和单个网站均可以设置默认的人机识别方式
- 修复修改单个WAF动作时名称可能会变为“阻止”的问题
- 集群WAF策略处于非防御模式时在地区封禁页面提示用户
- 源站支持40X内容自动重试其他源站设置,开启后遇到403、404自动重试其他源站
- 优化硬盘不足提示算法:用量小于5G或者空闲不超过100G的不提示
- 申请ACME证书时有效防止重复提交
- MySQL安装程序支持MySQL 8.2版本
API节点 EdgeAPI
- 限制访问日志中域名能写入的最大长度
边缘节点 EdgeNode
- 修复磁盘占用统计计算错误
- 调整缓存索引数据库缓存尺寸,大幅减少对内存的占用
- 提升缓存索引数据库和计数器性能,降低内存使用
- 读取缓存时可以使用源站的Etag
- 修复访问节点自定义内容可能无法生效的问题
- 限制请求域名长度不超过253,超出时的访问提示400
- 人机识别增加UA记录,进一步增强安全性
- 人机识别错误次数不再区分不同URL,现在为合计计数
- SSL证书更好地支持IP地址
v1.2.10
GoEdge v1.2.10开源版本提升节点性能和内存安全性。
管理系统 EdgeAdmin
- WAF记录IP动作中IP名单允许留空,留空后表示使用默认全局黑名单
- WAF规则对比值长度限制为4096个字符,当输入超出4096字符后,提示用户长度限制
- 优化“集群设置--网站设置”页面,将选项使用选项卡归类
- 将全局的“通用设置--域名审核”设置移到“集群设置--网站设置”中,每个集群可以单独设置是否需要审核
- 将全局设置的TCP相关设置移到“集群设置--网站设置”中
- 网站访问日志未开启时,在访问日志列表显示提醒文字
- 优化
<url-pattern-box>
组件对输入问号的提示,当在例外URL和限制URL里输入问号及参数时,提示用户输入错误 - 集群设置中增加“自动调节系统参数”选项,启用后,节点程序在启动时会自动尝试调整系统参数,以提升性能
- 访问日志列表搜索增加请求来源查询语法:
referer:example.com
- 证书列表、申请证书任务列表页区分管理员和用户证书,现在可以使用管理员和用户两个选项卡方便切换不同的证书了
- macOS上检测磁盘是否不足时忽略
/Developer/
相关分区,防止产生不必要的提示
API节点 EdgeAPI
- 修复常用网站、常用集群查询可能因为updatedAt过大导致的SQL错误
- 取消默认反向代理默认的50X重试,避免和很多程序使用50X作为特殊业务代码冲突
- WAF策略中默认不启用SynFlood检测
边缘节点 EdgeNode
- 根据系统磁盘性能、当前系统负载等条件自动提升快速硬盘清理过期缓存速度
- 执行
edge-node cache.badge
命令时实时打印进度 - 优化磁盘容量限制、内存容量限制,避免可能出现超出容量的情形
- 提升计数器性能、降低计数器内存使用
- 优化缓存索引加载速度,节点程序启动时间大幅缩短
- 根据系统内存自动调节系统参数时调整
vm.dirty_background_ratio
和vm.dirty_ratio
- 限制文件句柄缓存内存使用
- 内存缓存、本地数据库也有多处性能优化
- 去除WAF检测上传信息遗留的调试信息
v1.2.9
GoEdge v1.2.9版本主要优化缓存清理、访客IP等细节。
管理系统 EdgeAdmin
- 添加域名时移除多余的端口号,防止错误填入类似于
example.com:8080
的端口 - 反向代理(源站--更多设置--更多选项)增加“自动重试50X选项”,默认为启用,启用后,在源站返回50X错误时,会自动重新尝试
- 修复 安全设置 -- 允许访问的国家和地区 中不能使用中国特殊区域(中国内地、中国香港等)的问题
- 优化几个内置的自定义页面模板,增加连接IP信息,方便诊断
- 网站设置增加是否支持
${serverAddr}
选项,选中后可以在模板中使用${serverAddr}
变量 - 有消息提示时页面标题增加三个点符号提示,方便用户快速知晓是否有通知消息
- 修复单个节点同属多个集群时DNS线路设置时会自动复制的问题
- 由于当前对gif格式支持的不完整,WebP支持的默认格式中去除
image/gif
- WebP设置中提示用户宽高最大只支持16383像素
- 优化MySQL安装程序,提升在系统配置较差时的安装成功几率
- 集群设置 -- 网站设置-- 增加“处理未绑定域名方式”选项,现在可以选择直接关闭连接,不输出任何页面内容
- 优化访客IP地址设置,修复无法设置为从代理读取的问题,并增加从请求报头读取的选项
- 转发到源站的
X-Real-IP
报头内容也可以从变量中读取 - WAF策略中验证码动作页面模板中使用
<form></form>
包裹${body}
时提示警告,防止因为错误的模板导致验证码无法提交 - 系统在进行健康检查时不进行指标统计
API节点 EdgeAPI
- 域名解析:调用自定义HTTP DNS时增加action(值为
GetDomains
),用来获取域名列表,以往action为空
边缘节点 EdgeNode
- 修复访问日志无法准确记录自定义跳转状态码的问题
- 检查硬盘是否已满时同时检测缓存策略中定义的容量
- 源站返回50X时,也可以根据设置(默认启用)自动尝试读取别的源站
- 源站返回50X时,也可以尝试使用过时缓存(商业版功能)
- 优化过时缓存时长(从600秒改为1200秒),即缓存到期后延时20分钟后再清理,以便于处理源站50X状态码(商业版功能)
- 修复状未绑定域名中
${status}
和${statusMessage}
变量值错误的问题 - 增加
${serverAddr}
变量,可以在各个自定义页面模板中使用 - 修复集群设置--网站设置中启用“允许使用节点IP访问”时无法访问IPv6的问题
- WebP转换增加宽度和高度限制(16383像素),此限制是因为WebP自身的限制,如果图片超出此高度,就无法转换为WebP
- 修复节点缓存磁盘容量设置不生效的问题
- 优化磁盘空间不足时清理逻辑,现在可以一次性清理更多的缓存
- 增加
edge-node cache.garbage
命令用于清理垃圾缓存 - 删除IP名单后不再加入新的IP
通用 EdgeCommon
- 爬虫规则中将
php
改为php\b
,避免意外地屏蔽某些安卓WebView访问