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可能缺失回收数据的问题,此问题可能导致内存中有些数据无法正确回收