🙈 By 单雷 2025-07-09
NJet3.3本次发布包括了8项新特性,19项优化,修改了4项关键bug。关键特性如下
1 合并上游代码:在本次更新中,NJet合并上游NGINX代码到1.27.4,持续保持更新。同时也针对铜锁做了更新,升级到tongsuo 8.3.0-stable分支(1206e6b),国密SSL性能得到了较大提升,其国密短连接性能已经优于RSA/ECC算法。
2 支持龙芯: NJet在这个版本中针对龙芯3C6000+龙蜥完成了适配,支持了longarch64架构。为支持longarch64架构,NJet的动态协议框架支持了外部协议库,绕过了目前缺乏对longarch64架构下JIT支持的缺陷。
3 支持json配置格式: NJet传统的配置格式由于和NGINX保持一致,对运维工具不友好,因此NJet在这次发布中支持JSON配置格式,并可以和常规的配置文件格式混用,比如MIME 列表保持常规的配置格式不变,而在频繁变动的NJet.conf改为NJet.json,从而便于运维工具维护该文件,比如利用jsonPath方便的修改(注:json支持参考网站blog)
4 实现了完整的Portal能力:在前期NJet发布时,提供了APIGateway,在NJet3.3发布时,扩展该能力形成了NJet Portal,提供类似APK形式的应用包,就可以图形化的部署、管理应用;同时也简化了应用开发的流程,开发人员完全不用关心用户、权限管理,这些都由NJet代为完成
此外,NJet还修复了关键性的virtual server变更对其余配置的影响,建议大家尽快升级到该版本
最后,由于有社区用户要求能够支持某些频繁使用的NGINX第三方组件,比如more_set_headers, 通名智云决定针对社区呼声较高的第三方模块提供官方portal支持。将构建一个社区模块库NJet-commutity-modules,后续NJet发版时,会对已经支持的社区模块进行验证,保证向后兼容性。
新增功能:
- gzip模块支持deflate算法配置
- upstream api 对http/stream upstream server 的增加,删除,修改支持集群内同步。
- upstream api 接口,支持http/stream 配置upstream server 的service 字段
- 协议server 支持加载so 模块
- 增加tools目录,增加agw_passwd工具
- 跟踪nginx代码,更新到1.27.4,主要更新内容
- stream功能:增加server_name, 增加stream_pass_module, 支持OSCP校验,优化preread阶段等
- http功能:QUIC协议优化,MP4防止数据溢出,支持proxy_pass_tailer,优化http2退出处理逻辑,更新proxy_limit_rate参数类型等
- ssl功能:为证书增加cache功能,默认不支持tslv1, tslv1.1,优化客户证书校验流程等
- upstream功能:为server增加service属性,增加resolver_timeout指令,增强域名解析功能
- 其他更新:对chain_buf使用进行优化,mail功能优化,ipv6解析优化,日志内容优化等
- 初步支持json格式的配置文件
- 增加对龙芯(loongarch64)架构适配
功能优化:
- tongsuo升级到tongsuo 8.3.0-stable分支(1206e6b)
- stream ftp代理模块采用静态编译,不再编译动态模块
- stream mqtt代理模块采用静态编译,不再编译动态模块
- njet启动新增-d data 路径设置,存放data数据, log日志文件路径使用-e 前缀路径
- 动态Lua 模块功能优化, location 动态删除时清空对应cache
- API Gateway 提供Portal模块的相关API
- API Gateway 初始安装时使用随机密码,并提供密码重置工具
- VS/location 变化时,更新动态header 全量配置
- VS/location 变化时,更新动态proxy_pass 全量配置
- VS/location 变化时,更新动态limit限流模块全量配置
- VS/location 变化时,更新动态access log模块全量配置
- VS/location 变化时,更新动态auth认证全量配置
- VS/location 变化时,更新动态故障注入模块全量配置
- VS/location 变化时,更新动态telemetry开关全量配置
- VS/location 变化时,更新动态黑白名单全量配置
- VS/location 变化时,更新动态Lua全量配置
- VS/location 变化时,更新动态vtsc全量配置
- VS/location 变化时,更新动态modsecurity全量配置
- shm共享内存指标输出去掉页面内slot的统计项
Bug fix:
- 修改了动态location 中的 lua code cache 清空问题。
- 修改了反复添加VS时,会有内存泄漏的问题。
- 修改了配置动态upstream的swagger页面默认配置。
- 修改了连续多次动态添加server时,可能会导致丢失server的问题。