OpenNJet v4.0.1.0发布,云原生应用引擎新里程碑


OpenNJet v4.0.1.0 正式上线,打造高效云原生应用引擎
本次版本更新涵盖多项功能优化与缺陷修复,具体如下:
功能改进
- 统一 modules 目录下各模块 config 文件的使用规范
- 动态添加虚拟服务(VS)时,若涉及新增端口,可在 listen_option 中配置相关参数(当前暂不支持 QUIC 协议)
- 重构 event 框架,提升消息处理性能
- 改进 njetmq 模块的编译脚本
- 将 proto_server 模块调整为动态加载模块
问题修复
- 修复 HTTP/Stream 模块中 round-robin 算法因 backup 节点导致 tried 数组越界的问题
- 修复 HTTP/Stream 的 hash 和 random 负载均衡算法在遍历 peers 时存在的越界访问
- 修复 Stream upstream zone 内存分配失败时 service 字段引发的内存泄漏
- 移除 Goaccess 模块中的 njt_dynlog_parser.c 与 njt_dynlog_parser.h 文件
- 解决 libtcc1.a 在跨平台复制过程中的路径错误
- 清理冗余文件:Dockerfile.ubuntu、build_k8s.sh、njet_sidecar.conf
- 修复 telemetry webserver 模块编译时出现的警告信息
- 规范 njt_cycle->log 的调用方式,避免非标准使用
- 修正编译脚本中存在的拼写错误
- 修复 HTTP cache 模块存在的内存泄露问题
- 解决 njetmq 在未订阅情况下 retain 消息导致的内存泄漏
- 修复循环增删动态 location 时可能引起 broker 进程崩溃的问题
- 修复健康检查前缀匹配逻辑误判问题
- 修正健康检查代码中结构体长度使用错误导致的内存分配异常
- 修复在 Kunpeng 920 CPU 上 rsync 模块无法正常加载的问题
- 提升代码兼容性,解决不同 GCC 版本编译时的差异问题
已知待解决问题
- TCP 流量劫持依赖 iptables nat 表 prerouting 链规则,仅对非本机 IP 的外部流量生效
- HA/MA 配置同步中,命令式 API 动态删除 location 的消息同步机制存在缺陷
- 应用加速功能在删除 location 后,本地缓存文件未能及时清理
- 配置沙箱进程在 NJet 可执行文件热升级期间,无法等待旧沙箱退出后再启动新实例
- 动态创建 VS 时需至少存在一个静态 VS,否则将报错
- 动态 VS 新增监听端口时,listen_option 不支持 quic 参数;UDP 需通过 addr_port 设置
- 动态 VS 当前不支持 zone、location、ssl_ocsp、ssl_stapling、quic 等指令
- 动态 VS 不支持创建新的 error_log 或 access_log 文件
- 动态 location 不支持 zone 指令
- 动态添加 SSL 证书必须预先配置初始证书,否则通过接口添加会失败
- 显示 location 的 API 在配置 if 或 limit_except 时显示异常
安装方式说明
CentOS 发行版
安装步骤:
# 生成 njet.repo sudo bash -c 'cat > /etc/yum.repos.d/njet.repo << EOF [njet] name=NJet Repository baseurl=https://njet.org.cn/download/linux/centos/\$releasever/\$basearch/ gpgcheck=1 enabled=1 gpgkey=https://njet.org.cn/download/linux/centos/RPM-GPG-KEY-NJET EOF'
升级操作:
注意:升级至 NJet 4.0.1.0 及以上版本时,默认保留 ctrl_kv.conf、goaccess.conf、njet.conf、njet_ctrl.conf 四个配置文件内容。但若从更早版本升级,请提前备份;html 目录所有版本均建议手动备份。
sudo cp -r /usr/local/njet/conf /usr/local/njet/conf_backup sudo cp -r /usr/local/njet/html /usr/local/njet/html_backup sudo yum update njet # 更新到最新版
Ubuntu 发行版
安装流程:
# 添加 GPG 密钥 sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://www.php.cn/link/d9f53a87e571214d24718690a39f67e9/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/njet.gpg sudo chmod a+r /etc/apt/keyrings/njet.gpg添加 APT 源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/njet.gpg] https://www.php.cn/link/d9f53a87e571214d24718690a39f67e9 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/njet.list > /dev/null
sudo apt-get update
安装并启动服务
sudo apt-get install njet sudo systemctl start njet
升级步骤:
sudo cp -r /usr/local/njet/conf /usr/local/njet/conf_backup sudo cp -r /usr/local/njet/html /usr/local/njet/html_backup sudo apt-get update sudo apt install --only-upgrade njet
二进制包安装
RPM 包安装
# 安装 yum localinstall ./njet-4.0.1.0-1.ky10.x86_64.rpm systemctl start njet systemctl stop njet升级
sudo cp -r /usr/local/njet/conf /usr/local/njet/conf_backup sudo cp -r /usr/local/njet/html /usr/local/njet/html_backup yum remove njet yum localinstall ./njet-4.0.1.0-1.ky10.x86_64.rpm
DEB 包安装
# 安装 dpkg -i njet_4.0.1.0-1~ubuntu.18.04~bionic_amd64.deb systemctl start njet systemctl stop njet升级
sudo cp -r /usr/local/njet/conf /usr/local/njet/conf_backup sudo cp -r /usr/local/njet/html /usr/local/njet/html_backup dpkg -i njet_4.0.1.0-1~ubuntu.18.04~bionic_amd64.deb
Docker 方式运行
使用以下命令启动容器:
docker run -d --rm --privileged tmlake/njet:4.0.1.0
详细使用说明请参考:https://www.php.cn/link/d15ff2db80a89807d24869fd9ffb1700
下载列表及安装包说明
- otel 安装包:包含 OpenTelemetry 模块(按需选择对应系统安装)
- captcha 安装包:提供动态验证码功能模块(按需安装)
OpenNJet Ubuntu DEB 包基于 18.04 编译,兼容 Ubuntu 20.04 与 Ubuntu 22.04 系统。
各组件说明:
-
njet: 主程序安装包
-
.deb:适用于 Ubuntu 系统 -
el7.x86_64.rpm:适用于 CentOS 系统 -
.ky10.x86_64.rpm:适用于 x86_64 架构的 Kylin 麒麟系统 -
.an8.loongarch64.rpm:适用于龙芯架构系统 -
.ky10.aarch64.rpm:适用于基于 Kunpeng-920 的 ARM64 麒麟系统
-
-
NJet-comm-modules: 社区扩展模块包
- 支持
.deb、el7.x86_64.rpm、.ky10.x86_64.rpm格式
- 支持
-
njet_python_wsgi: Python 脚本与 WSGI 应用支持模块
- 提供多平台版本(Ubuntu、CentOS、Kylin)
-
njet_otel: Telemetry 链路追踪模块
- 支持主流操作系统格式
-
njet_captcha: 访问频率控制模块
- 多系统适配安装包
portal_1.0.2_noarch.npk: Portal 应用管理模块(跨平台通用)
ssh_remote_mod.so: Portal 所需的 Lua 扩展模块(通用)
simulate-app_1.0.2.npk: NJet 模拟环境应用(通用包)
-
cert-manager: 基于 ACME 协议的自动证书管理工具
-
cert-manager-arm64:ARM64 架构 -
cert-manager:x86-64 架构 -
cert-manager-loongarch64:LoongArch 架构
-
更多详情请访问:https://www.php.cn/link/64157a370a2257ee6c20f26f14ba3583
源码地址:点击下载
下一篇 >>
网友留言(0 条)